package com.wabacusdemo;

import java.io.BufferedInputStream;
import java.io.BufferedOutputStream;
import java.io.BufferedWriter;
import java.io.File;
import java.io.FileInputStream;
import java.io.FileNotFoundException;
import java.io.FileOutputStream;
import java.io.FileWriter;
import java.io.IOException;
import java.sql.Connection;
import java.sql.ResultSet;
import java.sql.SQLException;
import java.sql.Statement;
import java.text.ParseException;
import java.text.SimpleDateFormat;
import java.util.ArrayList;
import java.util.HashMap;
import java.util.Iterator;
import java.util.List;
import java.util.Map;
import java.util.Date;

import org.apache.poi.hssf.usermodel.HSSFCell;
import org.apache.poi.hssf.usermodel.HSSFDateUtil;
import org.apache.poi.hssf.usermodel.HSSFRow;
import org.apache.poi.hssf.usermodel.HSSFSheet;
import org.apache.poi.hssf.usermodel.HSSFWorkbook;
import org.apache.poi.poifs.filesystem.POIFSFileSystem;

import com.wabacus.config.component.application.report.ReportBean;
import com.wabacus.exception.WabacusDataImportException;
import com.wabacus.system.ReportRequest;
import com.wabacus.system.dataimport.filetype.AbsFileTypeProcessor;
import com.wabacus.system.intercept.AbsInterceptorDefaultAdapter;
import com.wabacus.util.Tools;

public class Interceptor_saveinterceptorpersqlpage1 extends AbsInterceptorDefaultAdapter
{
	private String JRXKZHM="";
	private int iState=1;
	public final double EXP = 0.0000000000000001;
	private Map<String,Map<Integer, String>> XTXMXX = new HashMap<String,Map<Integer, String>>();
	private Map<String,Map<Integer, String>> JYDSJG = new HashMap<String,Map<Integer, String>>();
	private Map<String,Map<Integer, String>> JYDSGR = new HashMap<String,Map<Integer, String>>();
	private Map<String,Map<Integer, String>> TRZHTXX = new HashMap<String,Map<Integer, String>>();
	private Map<String,String> XTXMYXFS = new HashMap<String,String>();
	private Map<String,String> XTZL = new HashMap<String,String>();
	private Map<String,String> STRZYZZ = new HashMap<String,String>();
	private Map<String,String> XTCCPGPD = new HashMap<String,String>();
	private Map<String,String> XTCCJZPLPD = new HashMap<String,String>();
	private Map<String,String> SYFPFS = new HashMap<String,String>();
	private Map<String,String> XTJGSX = new HashMap<String,String>();
	private Map<String,String> XTXMKFPD = new HashMap<String,String>();
	private Map<String,String> XTXMGLFS = new HashMap<String,String>();
	private Map<String,String> ShiFou = new HashMap<String,String>();
	private Map<String,String> SYFPPD = new HashMap<String,String>();
	private Map<String,String> ZJLX = new HashMap<String,String>();//证件类型
	private Map<String,String> JYDSSFSSBS = new HashMap<String,String>();
	private Map<String,String> JYDSSFPTBS = new HashMap<String,String>();
	private Map<String,String> QYLX = new HashMap<String,String>();
	private Map<String,String> SSHY = new HashMap<String,String>();
	private Map<String,String> FDCXMLX = new HashMap<String,String>();
	private Map<String,String> XMXSZJJKAP = new HashMap<String,String>();
	private Map<String,String> XMLX = new HashMap<String,String>();
	private Map<String,String> JZPD = new HashMap<String,String>();//净值频度
	private Map<String,String> ZCGLBGPD = new HashMap<String,String>();
	private Map<String,String> SFAYDRQQS = new HashMap<String,String>();
	private Map<String, String> JYDSLX = new HashMap<String,String>();
	private Map<String, String> TRZXS = new HashMap<String,String>();
	private Map<String, String> HKFS = new HashMap<String,String>();
	private Map<String, String> KJKM = new HashMap<String,String>();//会计科目
	private Map<String, String> JD_FX = new HashMap<String,String>();//会计科目
	
	
	public void doStart(ReportRequest rrequest,ReportBean rbean)
    {
		rrequest.getRequest().getSession().setAttribute("sessionid", rrequest.getRequest().getSession().getId());//将SessionID数据放入session中
    }
	
    @SuppressWarnings("unchecked")
	public int beforeSavePerSql(ReportRequest rrequest,ReportBean rbean,Map mRowData,Map mExternalValues,String sql)
    {
        File datafile = null;
        String fileName = null,sbjgqc=null,bbrq=null,bbwjlj=null;
        iState=1;
        int MuBanID=0,xtgsid=0,returnCode=0;
        try{
	        if(mRowData!=null)//mRowData中存放了本条记录各列的值
	        {
	        	fileName=(String)mRowData.get("excelwjlj");
	        	fileName=fileName.substring(rrequest.getRequest().getContextPath().length());
	        	fileName=rrequest.getRequest().getRealPath(fileName);
	        	fileName=fileName.replaceAll("\\\\","/");
	        	mRowData.put("excelwjlj", fileName);
	        	xtgsid=Integer.parseInt((String)mRowData.get("xtgsid"), 10);
	        	bbrq=Tools.getStrDatetime("yyyyMMdd",(String)mRowData.get("bbrq"));
	        	MuBanID=Integer.parseInt((String)mRowData.get("mbid"), 10);
	        }
        }
        catch(Exception _err){
        	return WX_TERMINATE;
        }
		if(fileName!=null){
			datafile=new File(fileName);
		}
		else{
        	return WX_TERMINATE;
		}
		if(xtgsid>0l&&bbrq!=null){
			Connection conn = rrequest.getConnection();
			Statement stmt=null;
	        //下面从数据库中取到本报表当前显示的所有no中对应的省、市、县数据，并存放在mData中
	        Map<String,String> mDataTmp=new HashMap<String,String>();
	        try
	        {
	            stmt=conn.createStatement();
	            ResultSet rs=stmt.executeQuery("select b.JGJGSZDQ,a.XTGSQC,a.JRXKZHM from XinTuoGongSi A left outer join JianGuanJiGouSuoZaiDiQu B on (a.JGJGSZDQID=b.ID) where a.id ="+xtgsid+"");
	            if(rs.next())
	            {
	            	JRXKZHM=rs.getString("JRXKZHM");
	            	sbjgqc=rs.getString("JGJGSZDQ") + "-" + rs.getString("XTGSQC");
	            }
	            rs.close();
	        }catch(SQLException e){
	        }finally{
	            try
	            {
	            	if(stmt!=null){
	            		stmt.close();
	            	}
	            }
	            catch(SQLException e)
	            {
	            }
	        }
			bbwjlj=fileName.substring(0,fileName.lastIndexOf("/")+1)+Tools.getStrDatetime("yyyyMMddHHmmssSSS",new Date())+"/"+sbjgqc+"-"+bbrq+"";
			
			if(datafile!=null && bbwjlj!=null){
				switch (MuBanID) {
				case 1:
					returnCode=createEastData(datafile,bbwjlj);
					break;
				default:
					returnCode=WX_TERMINATE;
				}
			}
			else{
				returnCode=WX_TERMINATE;
			}
			mRowData.put("bbwjlj", bbwjlj.substring(0,bbwjlj.lastIndexOf("/"))+".zip");
			mRowData.put("state", ""+iState);
		}
		else{
			returnCode=WX_TERMINATE;
		}
		return returnCode;
    }

    public int afterSavePerSql(ReportRequest rrequest,ReportBean rbean,Map mRowData,Map mExternalValues,String sql)
    {
        return WX_CONTINUE;
    }
    
    private int createEastData(File datafile,String bbwjlj){
    	XTXMXX = new HashMap<String,Map<Integer, String>>();
    	JYDSJG = new HashMap<String,Map<Integer, String>>();
    	JYDSGR = new HashMap<String,Map<Integer, String>>();
    	TRZHTXX = new HashMap<String,Map<Integer, String>>();
    	XTXMYXFS = new HashMap<String,String>();
    	XTZL = new HashMap<String,String>();
    	STRZYZZ = new HashMap<String,String>();
    	XTCCPGPD = new HashMap<String,String>();
    	XTCCJZPLPD = new HashMap<String,String>();
    	SYFPFS = new HashMap<String,String>();
    	XTJGSX = new HashMap<String,String>();
    	XTXMKFPD = new HashMap<String,String>();
    	XTXMGLFS = new HashMap<String,String>();
    	ShiFou = new HashMap<String,String>();
    	SYFPPD = new HashMap<String,String>();
    	ZJLX = new HashMap<String,String>();//证件类型
    	JYDSSFSSBS = new HashMap<String,String>();
    	JYDSSFPTBS = new HashMap<String,String>();
    	QYLX = new HashMap<String,String>();
    	SSHY = new HashMap<String,String>();
    	FDCXMLX = new HashMap<String,String>();
    	XMXSZJJKAP = new HashMap<String,String>();
    	XMLX = new HashMap<String,String>();
    	JZPD = new HashMap<String,String>();//净值频度
    	ZCGLBGPD = new HashMap<String,String>();
    	SFAYDRQQS = new HashMap<String,String>();
    	JYDSLX = new HashMap<String,String>();
    	TRZXS = new HashMap<String,String>();
    	HKFS = new HashMap<String,String>();
    	KJKM = new HashMap<String,String>();
    	XTXMYXFS.put("封闭", "0");
    	XTXMYXFS.put("开放", "1");
    	XTZL.put("集合信托计划", "0");
    	XTZL.put("单一资金信托", "1");
    	XTZL.put("财产权信托", "2");
    	STRZYZZ.put("投融资运作并保值增值", "0");
    	STRZYZZ.put("代为持有并行使相关权力", "1");
    	STRZYZZ.put("为财产独立性为目的而持有", "2");
    	STRZYZZ.put("其他", "3");
    	XTCCPGPD.put("每日估值", "1");
    	XTCCPGPD.put("每周估值", "2");
    	XTCCPGPD.put("每月估值", "3");
    	XTCCPGPD.put("其他频度定期估值", "4");
    	XTCCPGPD.put("不定期", "5");
    	XTCCPGPD.put("不评估定期", "0");
    	XTCCJZPLPD.put("每日披露", "1");
    	XTCCJZPLPD.put("每周披露", "2");
    	XTCCJZPLPD.put("每月披露", "3");
    	XTCCJZPLPD.put("每季披露", "4");
    	XTCCJZPLPD.put("每年披露", "5");
    	XTCCJZPLPD.put("其他频度", "6");
    	XTCCJZPLPD.put("不定期披露", "7");
    	XTCCJZPLPD.put("不披露", "0");
    	SYFPFS.put("到期还本付息", "1");
    	SYFPFS.put("分期付息", "2");
    	SYFPFS.put("分期还本", "3");
    	SYFPFS.put("其他", "0");
    	SYFPPD.put("周", "0");
    	SYFPPD.put("旬", "1");
    	SYFPPD.put("月度", "2");
    	SYFPPD.put("季度", "3");
    	SYFPPD.put("年度", "4");
    	SYFPPD.put("到期一次付清", "5");
    	SYFPPD.put("其他", "6");
    	XTJGSX.put("结构化", "0");
    	XTJGSX.put("非结构化", "1");
    	XTXMKFPD.put("每日开放", "0");
    	XTXMKFPD.put("每周开放", "1");
    	XTXMKFPD.put("每月开放", "2");
    	XTXMKFPD.put("每季开放", "3");
    	XTXMKFPD.put("每年开放", "4");
    	XTXMKFPD.put("其他频度开放", "5");
    	XTXMKFPD.put("开放频度不确定", "6");
    	XTXMGLFS.put("主动", "0");
    	XTXMGLFS.put("被动", "1");
    	XTXMGLFS.put("其他", "2");
    	ShiFou.put("是", "0");
    	ShiFou.put("否", "1");
    	ZJLX.put("身份证", "0");
    	ZJLX.put("户口簿", "1");
    	ZJLX.put("护照", "2");
    	ZJLX.put("军官证", "3");
    	ZJLX.put("士兵证", "4");
    	ZJLX.put("港澳居民来往内地通行证", "5");
    	ZJLX.put("台湾同胞来往内地通行证", "6");
    	ZJLX.put("临时身份证", "7");
    	ZJLX.put("外国人居留证", "8");
    	ZJLX.put("警官证", "9");
    	ZJLX.put("其他证件", "10");
    	JYDSSFSSBS.put("非上市","0");
    	JYDSSFSSBS.put("境内上市","1");
    	JYDSSFSSBS.put("境外上市","2");
    	JYDSSFPTBS.put("非平台公司","0");
    	JYDSSFPTBS.put("平台公司","1");
    	QYLX.put("大型企业","0");
    	QYLX.put("中型企业","1");
    	QYLX.put("小型企业","2");
    	QYLX.put("微型企业","3");
    	SSHY.put("农、林、牧、渔业","A");
    	SSHY.put("采掘业","B");
    	SSHY.put("制造业","C");
    	SSHY.put("电力、燃气及水的生产和供应业","D");
    	SSHY.put("建筑业","E");
    	SSHY.put("交通运输、仓储和邮政业","F");
    	SSHY.put("信息传输、计算机服务和软件业","G");
    	SSHY.put("批发和零售业","H");
    	SSHY.put("住宿和餐饮业","I");
    	SSHY.put("金融业","J");
    	SSHY.put("房地产业","K");
    	SSHY.put("租赁和商务服务业","L");
    	SSHY.put("科学研究、技术服务业和地质勘察业","M");
    	SSHY.put("水利、环境和公共设施管理业","N");
    	SSHY.put("居民服务和其他服务业","O");
    	SSHY.put("教育","P");
    	SSHY.put("卫生、社会保障和社会福利业","Q");
    	SSHY.put("文化、体育和娱乐业","R");
    	SSHY.put("公共管理和社会组织","S");
    	SSHY.put("国际组织","T");
    	SSHY.put("未知","Z");
    	JYDSLX.put("自然人","0");
    	JYDSLX.put("机构","1");
    	TRZXS.put("贷款","0");
    	TRZXS.put("租赁","1");
    	TRZXS.put("投资附回购","2");
    	TRZXS.put("投资附回购选择权","3");
    	TRZXS.put("资产买入返售或回购承诺","4");
    	TRZXS.put("收益权投资附回购或回购选择权","5");
    	TRZXS.put("股权投资","6");
    	TRZXS.put("实物投资","7");
    	TRZXS.put("资产或收益权买断式投资","8");
    	TRZXS.put("组合","9");
    	TRZXS.put("其他","10");
    	HKFS.put("一次性还本付息","0");
    	HKFS.put("分期还息","1");
    	HKFS.put("分期还本","2");
    	HKFS.put("其他","3");
    	FDCXMLX.put("普通住房","0");
    	FDCXMLX.put("低密度高端住房","1");
    	FDCXMLX.put("商用房","2");
    	FDCXMLX.put("商住两用","3");
    	FDCXMLX.put("土地储备","4");
    	FDCXMLX.put("保障房","5");
    	FDCXMLX.put("其他","9");
    	XMXSZJJKAP.put("未监控","0");
    	XMXSZJJKAP.put("信托公司直接监控","1");
    	XMXSZJJKAP.put("委托银行监控","2");
    	XMXSZJJKAP.put("其他机构监控","3");
    	XMLX.put("其他项目","0");
    	XMLX.put("基础设施","1");
    	XMLX.put("矿产能源","2");
    	XMLX.put("技术改造","3");
    	JZPD.put("按日","0");
    	JZPD.put("按周","1");
    	JZPD.put("按月","2");
    	JZPD.put("按季","3");
    	JZPD.put("按年","4");
    	JZPD.put("其他频度","5");
    	JZPD.put("无","6");
    	ZCGLBGPD.put("按月", "0");
    	ZCGLBGPD.put("按季", "1");
    	ZCGLBGPD.put("按年", "2");
    	ZCGLBGPD.put("其他频度", "3");
    	ZCGLBGPD.put("无报告", "4");
    	SFAYDRQQS.put("提前", "0");
    	SFAYDRQQS.put("正常", "1");
    	SFAYDRQQS.put("推迟", "2");
		KJKM.put("YHCK","银行存款");
		KJKM.put("CCBZJ","存出保证金");
		KJKM.put("QTHBZJ","其他货币资金");
		KJKM.put("QHBZJ","期货保证金");
		KJKM.put("JYXJRZC","交易性金融资产");
		KJKM.put("JYXJRZC_CB","交易性金融资产-成本");
		KJKM.put("JYXJRZC_GYJZBD","交易性金融资产-公允价值变动");
		KJKM.put("MRFSJRZC","买入返售金融资产");
		KJKM.put("MRFSJRZC_ZQ","买入返售金融资产-证券");
		KJKM.put("MRFSJRZC_XDZC","买入返售金融资产-信贷资产");
		KJKM.put("MRFSJRZC_PJ","买入返售金融资产-票据");
		KJKM.put("MRFSJRZC_SYQ","买入返售金融资产-收益权");
		KJKM.put("MRFSJRZC_QT","买入返售金融资产-其他");
		KJKM.put("YSZK","应收账款");
		KJKM.put("YSGL","应收股利");
		KJKM.put("YSPJ","应收票据");
		KJKM.put("YSSGK","应收申购款");
		KJKM.put("YFZK","预付帐款");
		KJKM.put("GJS","贵金属");
		KJKM.put("GJS_HJ","贵金属-黄金");
		KJKM.put("GJS_BY","贵金属-白银");
		KJKM.put("GJS_PJ","贵金属-铂金");
		KJKM.put("YSLX","应收利息");
		KJKM.put("QTYSK","其它应收款");
		KJKM.put("CCZJ","拆出资金");
		KJKM.put("DK","贷款");
		KJKM.put("RZZLZC","融资租赁资产");
		KJKM.put("CYZDQTZ","持有至到期投资");
		KJKM.put("CYZDQTZ_ZQ","持有至到期投资-债券");
		KJKM.put("CYZDQTZ_XTTZ","持有至到期投资-信托投资");
		KJKM.put("CYZDQTZ_QTZQTZ","持有至到期投资-其它债权投资");
		KJKM.put("CYZDQTZ_YSZKSYQ","持有至到期投资-应收账款收益权");
		KJKM.put("CYZDQTZ_ZJSYQ","持有至到期投资-租金收益权");
		KJKM.put("CYZDQTZ_LCCPTZ","持有至到期投资-理财产品投资");
		KJKM.put("CYZDQTZ_QT","持有至到期投资-其它");
		KJKM.put("KGCSJRZC","可供出售金融资产");
		KJKM.put("KGCSJRZC_ZQ_CB","可供出售金融资产-债券-成本");
		KJKM.put("KGCSJRZC_ZQ_GYJZBD","可供出售金融资产-债券-公允价值变动");
		KJKM.put("KGCSJRZC_XTTZ_CB","可供出售金融资产-信托投资-成本");
		KJKM.put("KGCSJRZC_XTTZ_GYJZBD","可供出售金融资产-信托投资-公允价值变动");
		KJKM.put("KGCSJRZC_QTZQTZ_CB","可供出售金融资产-其它债权投资-成本");
		KJKM.put("KGCSJRZC_QTZQTZ_GYJZBD","可供出售金融资产-其它债权投资-公允价值变动");
		KJKM.put("KGCSJRZC_YSZKSYQ_CB","可供出售金融资产-应收账款收益权-成本");
		KJKM.put("KGCSJRZC_YSZKSYQ_GYJZBD","可供出售金融资产-应收账款收益权-公允价值变动");
		KJKM.put("KGCSJRZC_ZJSYQ_CB","可供出售金融资产-租金收益权-成本");
		KJKM.put("KGCSJRZC_ZJSYQ_GYJZBD","可供出售金融资产-租金收益权-公允价值变动");
		KJKM.put("KGCSJRZC_LCCPTZ_CB","可供出售金融资产-理财产品投资-成本");
		KJKM.put("KGCSJRZC_LCCPTZ_GYJZBD","可供出售金融资产-理财产品投资-公允价值变动");
		KJKM.put("KGCSJRZC_QT_CB","可供出售金融资产-其它-成本");
		KJKM.put("KGCSJRZC_QT_GYJZBD","可供出售金融资产-其它-公允价值变动");
		KJKM.put("CQGQTZ","长期股权投资");
		KJKM.put("TZXFDC","投资性房地产");
		KJKM.put("CQYSK","长期应收款");
		KJKM.put("CQYSK_YSRZZLK","长期应收款-应收融资租赁款");
		KJKM.put("CQYSK_QT","长期应收款-其他");
		KJKM.put("WSXRZSY","未实现融资收益");
		KJKM.put("WSXRZSY_YSRZLX","未实现融资收益-应收融资利息");
		KJKM.put("GDZC","固定资产");
		KJKM.put("LJZJ","累计折旧");
		KJKM.put("GDZCQL","固定资产清理");
		KJKM.put("WXZC","无形资产");
		KJKM.put("LJTX","累计摊销");
		KJKM.put("CQDTFY","长期待摊费用");
		KJKM.put("DZZC","抵债资产");
		KJKM.put("QTYSGJ","其他衍生工具");
		KJKM.put("QTYSGJ_DTTB","其他衍生工具-多头套保");
		KJKM.put("QTYSGJ_KTTB","其他衍生工具-空头套保");
		KJKM.put("QTYSGJ_DTTL","其他衍生工具-多头套利");
		KJKM.put("QTYSGJ_KTTL","其他衍生工具-空头套利");
		KJKM.put("QTZC","其他资产");
		KJKM.put("YFZK","应付账款");
		KJKM.put("YFSTRLY","应付受益人收益");
		KJKM.put("YFSTRBC","应付受托人报酬");
		KJKM.put("YFBGF","应付保管费");
		KJKM.put("YFXSFWF","应付销售服务费");
		KJKM.put("YJSF","应缴税费");
		KJKM.put("YFLX","应付利息");
		KJKM.put("YFQSK","应收清算款");
		KJKM.put("QTYFK","其他应付款");
		KJKM.put("zqqsk","证券清算款");
		KJKM.put("SSXT","实收信托");
		KJKM.put("SSXT_DYZJXT","实收信托-单一资金信托");
		KJKM.put("SSXT_JHZJXTJH","实收信托-集合资金信托计划");
		KJKM.put("SSXT_CCXT","实收信托-财产信托");
		KJKM.put("ZBGJ","资本公积");
		KJKM.put("ZBGJ_QTZBGJ","资本公积-其他资本公积");
		KJKM.put("ZBGJ_YJ","资本公积-溢价");
		KJKM.put("SYPZJ","损益平准金");
		KJKM.put("BNLR","本年利润");
		KJKM.put("LRFP","利润分配");
		KJKM.put("LXSR","利息收入");
		KJKM.put("LXSR_TYCKSR","利息收入-同业存款利息收入");
		KJKM.put("LXSR_CFZQBZJLXSR","利息收入-存放证券保证金利息收入");
		KJKM.put("LXSR_MRFSLXSR","利息收入-买入返售利息收入");
		KJKM.put("LXSR_XTDKLXSR","利息收入-信托贷款利息收入");
		KJKM.put("LXSR_ZQLXSR","利息收入-债券利息收入");
		KJKM.put("LXSR_QT","利息收入-其他");
		KJKM.put("ZLSR","租赁收入");
		KJKM.put("ZLSR_RZZLSR","租赁收入-融资租赁收入");
		KJKM.put("ZLSR_JYZLSR","租赁收入-经营租赁收入");
		KJKM.put("HDSY","汇兑损益");
		KJKM.put("GYJZBDSY","公允价值变动损益");
		KJKM.put("GYJZBDSY_JYXJRZC","公允价值变动损益-交易性金融资产");
		KJKM.put("GYJZBDSY_YSGJTZ","公允价值变动损益-衍生工具投资");
		KJKM.put("TZSY","投资收益");
		KJKM.put("TZSY_JYXJRZC","投资收益-交易性金融资产");
		KJKM.put("TZSY_CYZDQJRZC","投资收益-持有至到期金融资产");
		KJKM.put("TZSY_KGCSJRZC","投资收益-可供出售金融资产");
		KJKM.put("TZSY_GQTZSR","投资收益-股权投资收入");
		KJKM.put("TZSY_YSGJTZ","投资收益-衍生工具投资");
		KJKM.put("TZSY_QTTZSR","投资收益-其他投资收入");
		KJKM.put("QTSR","其他收入");
		KJKM.put("YYSJJFJ","营业税金及附加");
		KJKM.put("BGF","保管费");
		KJKM.put("XSFWF","销售服务费");
		KJKM.put("JYFY","交易费用");
		KJKM.put("STRBC","受托人报酬");
		KJKM.put("STRBC_JBBC","受托人报酬-基本报酬");
		KJKM.put("STRBC_YJBC","受托人报酬-业绩报酬");
		KJKM.put("STRBC_QTBC","受托人报酬-其他报酬");
		KJKM.put("TZGLF","投资管理费");
		KJKM.put("TZGLF_JBGLF","投资管理费-基本管理费");
		KJKM.put("TZGLF_YJGLF","投资管理费-业绩管理费");
		KJKM.put("TZGLF_QTGLF","投资管理费-其他管理费");
		KJKM.put("QTFY","其他费用");
		KJKM.put("QTFY_ZXFY","其他费用-咨询费用");
		KJKM.put("QTFY_QTFY","其他费用-其他费用");
		KJKM.put("ZCJZSS","资产减值损失");
		KJKM.put("YQNDSYTZ","以前年度损益调整");
		JD_FX.put("借方", "1");
		JD_FX.put("贷方", "2");
		Map<String,String> JYDSBH=new HashMap<String,String>();//交易对手编号
		Map<String,Map<Integer, String>> FDCLXMBH=new HashMap<String,Map<Integer, String>>();;//房地产类项目编号
		Map<String,Map<Integer, String>> FFDCLXMBH=new HashMap<String,Map<Integer, String>>();//非房地产类项目编号
    	try{
    		SimpleDateFormat format = new SimpleDateFormat("yyyyMMdd");
	    	File savePath=new File(bbwjlj);
        	if(!savePath.exists())savePath.mkdirs();
	        BufferedInputStream bis = new BufferedInputStream(new FileInputStream(datafile));
	        POIFSFileSystem fs=new POIFSFileSystem(bis);
	        HSSFWorkbook workbook=new HSSFWorkbook(fs);
	        int sheetcount = workbook.getNumberOfSheets();
	        for(int i=0;i<sheetcount;i++){
	        	String sheetName = workbook.getSheetName(i);
	        	HSSFSheet sheet = workbook.getSheetAt(i);
	        	int RowNumber =  sheet.getLastRowNum();
	        	int CellNumber =0;
	        	for (int num = sheet.getFirstRowNum(); num < RowNumber+1; num++) {
					Map<Integer, String> temp_map = new HashMap<Integer, String>();
					// 取得当前行
					HSSFRow row = sheet.getRow(num);
					//标题行获取每行最大列数
					if(num==0){
						CellNumber=row.getLastCellNum();
						continue;
					}
					List<String> cellList = new ArrayList<String>();

					// 循环读取列数据
					for (int j = 0;  j< CellNumber; j++) {

						String cellValue = "";//需要初始化
						HSSFCell cell = row.getCell(j);
						// 如果此列不为空列
						if (cell != null) {
							switch(cell.getCellType())
							{
								case HSSFCell.CELL_TYPE_STRING: // String
									cellValue = cell.getRichStringCellValue().getString();
									break;
								case HSSFCell.CELL_TYPE_FORMULA: // Formula
									cellValue = String.valueOf(cell.getNumericCellValue());
									break;
								//针对数值和日期小数作处理
								case HSSFCell.CELL_TYPE_NUMERIC: // Numeric
									String formatStr=cell.getCellStyle().getDataFormatString();
									if(HSSFDateUtil.isCellDateFormatted(cell)||formatStr.indexOf("yy")>=0) 
									{
										cellValue = format.format(cell.getDateCellValue());
									}else{
										double value = cell.getNumericCellValue();
										// 如果两个数值相差很小,则转换为整数
										if (Math.abs(value - (long) value) < EXP) {
											cellValue = String.valueOf((long) value);
										} else {
											// double值
											cellValue = String.valueOf(cell.getNumericCellValue());
										}
									}
									break;
								default: // Blank
									cellValue = "";
									break; 
							}
						}
						cellList.add(cellValue.trim());
					}
					// 进行赋值
					if (cellList != null && cellList.size() > 0) {
						for (int k = 0; k < cellList.size(); k++) {
							String vaule=cellList.get(k);
							if(vaule==null){
								vaule="";
							}
							else if(vaule.indexOf("|")>=0){
			        			iState=-1;
			        			Tools.writeStringToFile(bbwjlj+"/ERROR.txt", sheetName+"中第"+(num+1)+"行第" + (k+1) + "列“" + vaule + "”包含“|”字符\r\n");
							}
							temp_map.put(k, vaule);
						}
					}
		        	if(sheetName.equalsIgnoreCase("信托项目信息")){
		        		if(!XTXMXX.containsKey(temp_map.get(0))){
		        			XTXMXX.put(temp_map.get(0),temp_map);
		        			createXTXMXX(temp_map, bbwjlj,num);
		        		}
		        		else{
		        			iState=-1;
		        			Tools.writeStringToFile(bbwjlj+"/ERROR.txt", "信托项目信息中第"+(num+1)+"行的项目编码“" + temp_map.get(0) + "”重复\r\n");
		        		}
		        	}
		        	else if(sheetName.equalsIgnoreCase("交易对手-机构")){
		        		if(!JYDSBH.containsKey(temp_map.get(2))){
		        			JYDSBH.put(temp_map.get(2),temp_map.get(10));
		        		}
		        		if(!JYDSJG.containsKey(temp_map.get(0)+"|"+temp_map.get(1)+"|"+temp_map.get(2))){
		        			JYDSJG.put(temp_map.get(0)+"|"+temp_map.get(1)+"|"+temp_map.get(2),temp_map);
		        			createJYDSJG(temp_map, bbwjlj,num);
		        		}
		        		else{
		        			iState=-1;
		        			Tools.writeStringToFile(bbwjlj+"/ERROR.txt", "交易对手-机构中第"+(num+1)+"行的前三列“" + temp_map.get(0)+"|"+temp_map.get(1)+"|"+temp_map.get(2) + "”重复\r\n");
		        		}
		        	}
		        	else if(sheetName.equalsIgnoreCase("交易对手-个人")){
		        		if(!JYDSBH.containsKey(temp_map.get(2))){
		        			JYDSBH.put(temp_map.get(2),temp_map.get(5));
		        		}
		        		if(!JYDSGR.containsKey(temp_map.get(0)+"|"+temp_map.get(1)+"|"+temp_map.get(2))){
		        			JYDSGR.put(temp_map.get(0)+"|"+temp_map.get(1)+"|"+temp_map.get(2),temp_map);
		        			createJYDSGR(temp_map, bbwjlj,num);
		        		}
		        		else{
		        			iState=-1;
		        			Tools.writeStringToFile(bbwjlj+"/ERROR.txt", "交易对手-个人中第"+(num+1)+"行的前三列“" + temp_map.get(0)+"|"+temp_map.get(1)+"|"+temp_map.get(2) + "”重复\r\n");
		        		}
		        	}
		        	else if(sheetName.equalsIgnoreCase("投融资合同信息")){
		        		if(!JYDSBH.containsKey(temp_map.get(1))){
		        			iState=-1;
		        			Tools.writeStringToFile(bbwjlj+"/ERROR.txt", "投融资合同信息中第"+(num+1)+"行的交易对手编号“" + temp_map.get(5) + "”与“交易对手-机构”、“交易对手-个人”中的交易对手编号不一致\r\n");
		        		}
		        		else if(!JYDSBH.get(temp_map.get(1)).equalsIgnoreCase(temp_map.get(3))&&!JYDSBH.get(temp_map.get(1)).equalsIgnoreCase(temp_map.get(4))&&"0".equalsIgnoreCase(temp_map.get(4))){
		        			iState=0;
		        			if(temp_map.get(2).equalsIgnoreCase("自然人")){
		        				Tools.writeStringToFile(bbwjlj+"/ERROR.txt", "投融资合同信息中第"+(num+1)+"行的交易对手证件号码“" + temp_map.get(5) + "”与“交易对手-个人”中的交易对手证件号码不一致\r\n");
		        			}
		        			else{
		        				Tools.writeStringToFile(bbwjlj+"/ERROR.txt", "投融资合同信息中第"+(num+1)+"行的交易对手组织机构代码“" + temp_map.get(5) + "”与“交易对手-机构”中的交易对手组织机构代码不一致\r\n");	
		        			}
		        		}
		        		if(!TRZHTXX.containsKey(temp_map.get(5))){
		        			TRZHTXX.put(temp_map.get(5),temp_map);
		        			createTRZHTXX(temp_map, bbwjlj,num);
		        		}
		        		else{
		        			iState=-1;
		        			Tools.writeStringToFile(bbwjlj+"/ERROR.txt", "投融资合同信息中第"+(num+1)+"行的投融资合同编号“" + temp_map.get(5) + "”重复\r\n");
		        		}
		        	}
		        	else if(sheetName.equalsIgnoreCase("房地产类项目信息")){
		        		if(!FDCLXMBH.containsKey(temp_map.get(0))){
		        			FDCLXMBH.put(temp_map.get(0),temp_map);
		        		}
		        		else{
		        			iState=-1;
		        			Tools.writeStringToFile(bbwjlj+"/ERROR.txt", "房地产类项目信息中第"+(num+1)+"行的项目编码“" + temp_map.get(0) + "”重复\r\n");
		        		}
		        		createFDCXMXX(temp_map, bbwjlj,num);
		        	}
		        	else if(sheetName.equalsIgnoreCase("非房地产类项目信息")){
		        		if(!FFDCLXMBH.containsKey(temp_map.get(0))){
		        			FFDCLXMBH.put(temp_map.get(0),temp_map);
		        		}
		        		else{
		        			iState=-1;
		        			Tools.writeStringToFile(bbwjlj+"/ERROR.txt", "非房地产类项目信息中第"+(num+1)+"行的项目编码“" + temp_map.get(0) + "”重复\r\n");
		        		}
		        		createFFDCXMXX(temp_map, bbwjlj,num);
		        	}
		        	else if(sheetName.equalsIgnoreCase("期间管理信息（证券类）")){
		        		createQJGLXX_ZQL(temp_map, bbwjlj,num);
		        	}
		        	else if(sheetName.equalsIgnoreCase("信托项目会计信息")){
		        		createXTXMKJXX(temp_map, bbwjlj,num);
		        	}
		        	else if(sheetName.equalsIgnoreCase("信托项目清算信息")){
		        		createXTXMQSXX(temp_map, bbwjlj,num);
		        	}
				}
	        }
	        if(XTXMXX.size()!=(FDCLXMBH.size()+FFDCLXMBH.size())){
    			iState=-1;
    			Tools.writeStringToFile(bbwjlj+"/ERROR.txt", "房地产类项目信息和非房地产类项目信息中的总记录数和项目信息中的总记录数不一致\r\n");
    		
	        }
	        if(sheetcount<1)
	        {
	            throw new WabacusDataImportException("在数据文件"+datafile.getAbsolutePath()
	                    +"中没有取到所需的sheet");
	        }
	        String bbwjlj1=bbwjlj.substring(0, bbwjlj.lastIndexOf("/"));
	        String bbwjlj2=bbwjlj1.substring(bbwjlj1.lastIndexOf("/")+1);
	        String bbwjlj3=bbwjlj.substring(0, bbwjlj1.lastIndexOf("/"));
	        Tools.zipFolder(bbwjlj1, bbwjlj3, bbwjlj2);
	    }catch(FileNotFoundException e)
	    {
	        throw new WabacusDataImportException("数据导入失败，没有找到数据文件"+datafile.getAbsolutePath(),e);
	    }catch(IOException ioe)
	    {
	        throw new WabacusDataImportException("导入数据文件"+datafile.getAbsolutePath()+"失败",ioe);
	    }
    	return WX_CONTINUE; 
    }

	/** 创建项目信息上报文件
	 * @param temp_map 项目信息MAP数据
	 * @param bbwjlj 上报文件路径
	 */
	private void createXTXMXX(Map<Integer, String> temp_map, String bbwjlj,int num) {
    	StringBuffer sb = new StringBuffer(JRXKZHM+"|");
		for(int j=0;j<temp_map.size();j++){
			String temp = temp_map.get(j);
			switch (j){
			case 0:
				if(temp.trim().length()<1){
        			iState=-1;
					Tools.writeStringToFile(bbwjlj+"/ERROR.txt", "信托项目信息中第"+(num+1)+"行的信托项目编码必须填写\r\n");
				}
				if(temp.length()>40){
        			iState=-1;
					Tools.writeStringToFile(bbwjlj+"/ERROR.txt", "信托项目信息中第"+(num+1)+"行的信托项目编码字符长度大于40\r\n");
				}
				break;
			case 1:
				if(temp.trim().length()<1){
        			iState=-1;
					Tools.writeStringToFile(bbwjlj+"/ERROR.txt", "信托项目信息中第"+(num+1)+"行的信托项目名称必须填写\r\n");
				}
				if(temp.length()>60){
        			iState=-1;
					Tools.writeStringToFile(bbwjlj+"/ERROR.txt", "信托项目信息中第"+(num+1)+"行的信托项目名称字符长度大于60\r\n");
				}
				break;
			case 2:
				if(temp.trim().length()<1){
        			iState=-1;
					Tools.writeStringToFile(bbwjlj+"/ERROR.txt", "信托项目信息中第"+(num+1)+"行的信托项目名称必须填写\r\n");
				}
				else{
					Double d=Double.parseDouble(temp);
					if(d<10000){
	        			iState=-1;
						Tools.writeStringToFile(bbwjlj+"/ERROR.txt", "信托项目信息中第"+(num+1)+"行的信托成立规模必须大于10000\r\n");
					}
				}
				break;
			case 3:
				if(temp.compareToIgnoreCase("19490101")<0){
        			iState=-1;
					Tools.writeStringToFile(bbwjlj+"/ERROR.txt", "信托项目信息中第"+(num+1)+"行的信托项目成立日期必须大于1949年1月1日\r\n");
				}
				break;
			case 4:
				if(temp.compareToIgnoreCase("19490101")<0){
        			iState=-1;
					Tools.writeStringToFile(bbwjlj+"/ERROR.txt", "信托项目信息中第"+(num+1)+"行的信托项目到期日必须大于1949年1月1日\r\n");
				}
				if(temp.compareToIgnoreCase(temp_map.get(3))<0){
        			iState=-1;
					Tools.writeStringToFile(bbwjlj+"/ERROR.txt", "信托项目信息中第"+(num+1)+"行的信托项目到期日必须大于信托项目成立日期\r\n");
				}
				break;
			case 5:
				if(XTXMYXFS.containsKey(temp)){
					temp=XTXMYXFS.get(temp);
				}
				else{
        			iState=-1;
					Tools.writeStringToFile(bbwjlj+"/ERROR.txt", "信托项目信息中第"+(num+1)+"行的信托项目运行方式错误\r\n");
				}
				break;
			case 6:
				if(XTZL.containsKey(temp)){
					temp=XTZL.get(temp);
				}
				else{
        			iState=-1;
					Tools.writeStringToFile(bbwjlj+"/ERROR.txt", "信托项目信息中第"+(num+1)+"行的信托种类错误\r\n");
				}
				break;
			case 7:
				if(temp.trim().length()<1){
        			iState=-1;
					Tools.writeStringToFile(bbwjlj+"/ERROR.txt", "信托项目信息中第"+(num+1)+"行的信托资金约定用途必须填写\r\n");
				}
				if(temp.length()>1000){
        			iState=-1;
					Tools.writeStringToFile(bbwjlj+"/ERROR.txt", "信托项目信息中第"+(num+1)+"行的信托资金约定用途字符长度大于1000\r\n");
				}
				break;
			case 8:
				if(STRZYZZ.containsKey(temp)){
					temp=STRZYZZ.get(temp);
				}
				else{
        			iState=-1;
					Tools.writeStringToFile(bbwjlj+"/ERROR.txt", "信托项目信息中第"+(num+1)+"行的受托人主要职责错误\r\n");
				}
				break;
			case 9:
				if(temp.length()>1000){
        			iState=-1;
					Tools.writeStringToFile(bbwjlj+"/ERROR.txt", "信托项目信息中第"+(num+1)+"行的预计收益率字符长度大于1000\r\n");
				}
				break;
			case 10:
				if(XTCCPGPD.containsKey(temp)){
					temp=XTCCPGPD.get(temp);
				}
				else{
        			iState=-1;
					Tools.writeStringToFile(bbwjlj+"/ERROR.txt", "信托项目信息中第"+(num+1)+"行的信托财产净值评估频度错误\r\n");
				}
				break;
			case 11:
				if(XTCCJZPLPD.containsKey(temp)){
					temp=XTCCJZPLPD.get(temp);
				}
				else{
        			iState=-1;
					Tools.writeStringToFile(bbwjlj+"/ERROR.txt", "信托项目信息中第"+(num+1)+"行的信托财产净值披露频度错误\r\n");
				}
				break;
			case 12:
				if(temp.length()>0){
					if(SYFPFS.containsKey(temp)){
						temp=SYFPFS.get(temp);
					}
					else{
	        			iState=-1;
						Tools.writeStringToFile(bbwjlj+"/ERROR.txt", "信托项目信息中第"+(num+1)+"行的收益分配方式错误\r\n");
					}
				}
				break;
			case 13://收益分配频度
				if(temp.length()>0){
					if(SYFPPD.containsKey(temp)){
						temp=SYFPPD.get(temp);
					}
					else{
	        			iState=-1;
						Tools.writeStringToFile(bbwjlj+"/ERROR.txt", "信托项目信息中第"+(num+1)+"行的收益分配频度错误\r\n");
					}
				}
				break;
			case 14:
				if(XTJGSX.containsKey(temp)){
					temp=XTJGSX.get(temp);
				}
				else{
        			iState=-1;
					Tools.writeStringToFile(bbwjlj+"/ERROR.txt", "信托项目信息中第"+(num+1)+"行的项目结构属性错误\r\n");
				}
				break;
			case 15://信托项目开放频度
				if(temp_map.get(5).equalsIgnoreCase("开放")){
					if(XTXMKFPD.containsKey(temp)){
						temp=XTXMKFPD.get(temp);
					}
					else{
	        			iState=-1;
						Tools.writeStringToFile(bbwjlj+"/ERROR.txt", "信托项目信息中第"+(num+1)+"行的信托项目开放频度错误\r\n");
					}
				}
				else{
					temp="";
				}
				break;
			case 16:
				if(XTXMGLFS.containsKey(temp)){
					temp=XTXMGLFS.get(temp);
				}
				else{
        			iState=-1;
					Tools.writeStringToFile(bbwjlj+"/ERROR.txt", "信托项目信息中第"+(num+1)+"行的信托项目管理方式错误\r\n");
				}
				break;
			case 17:
				if(temp_map.get(14).equalsIgnoreCase("结构化")){
					Double d1=Double.parseDouble(temp);
					if(d1<0){
	        			iState=-1;
						Tools.writeStringToFile(bbwjlj+"/ERROR.txt", "信托项目信息中第"+(num+1)+"行的优先劣后受益权比例错误\r\n");
					}
				}
				else{
					temp="";
				}
				break;
			case 18:
				if(temp.length()>0){
					if(ShiFou.containsKey(temp)){
						temp=ShiFou.get(temp);
					}
					else{
	        			iState=-1;
						Tools.writeStringToFile(bbwjlj+"/ERROR.txt", "信托项目信息中第"+(num+1)+"行的是否QDII错误\r\n");
					}
				}
				else{
					temp="";
				}
				break;
			case 19:
				if(temp.length()>0){
					if(ShiFou.containsKey(temp)){
						temp=ShiFou.get(temp);
					}
					else{
	        			iState=-1;
						Tools.writeStringToFile(bbwjlj+"/ERROR.txt", "信托项目信息中第"+(num+1)+"行的是否公益信托错误\r\n");
					}
				}
				else{
					temp="";
				}
				break;
			case 20:
				if(temp.length()>0){
					if(ShiFou.containsKey(temp)){
						temp=ShiFou.get(temp);
					}
					else{
	        			iState=-1;
						Tools.writeStringToFile(bbwjlj+"/ERROR.txt", "信托项目信息中第"+(num+1)+"行的是否年金信托错误\r\n");
					}
				}
				else{
					temp="";
				}
				break;
			case 21://信托合同约定的信托报酬率
				if(temp.trim().length()<1){
        			iState=-1;
					Tools.writeStringToFile(bbwjlj+"/ERROR.txt", "信托项目信息中第"+(num+1)+"行的信托合同约定的信托报酬率必须填写\r\n");
				}
				if(temp.length()>1000){
        			iState=-1;
					Tools.writeStringToFile(bbwjlj+"/ERROR.txt", "信托项目信息中第"+(num+1)+"行的信托合同约定的信托报酬率字符长度大于1000\r\n");
				}
				break;
			case 22://信托专户银行账号
				if(temp.trim().length()<1){
        			iState=-1;
					Tools.writeStringToFile(bbwjlj+"/ERROR.txt", "信托项目信息中第"+(num+1)+"行的信托专户银行账号必须填写\r\n");
				}
				if(temp.length()>40){
        			iState=-1;
					Tools.writeStringToFile(bbwjlj+"/ERROR.txt", "信托项目信息中第"+(num+1)+"行的信托专户银行账号字符长度大于40\r\n");
				}
				break;
			case 23://信托专户开户行名称
				if(temp.trim().length()<1){
        			iState=-1;
					Tools.writeStringToFile(bbwjlj+"/ERROR.txt", "信托项目信息中第"+(num+1)+"行的信托专户开户行名称必须填写\r\n");
				}
				if(temp.length()>60){
        			iState=-1;
					Tools.writeStringToFile(bbwjlj+"/ERROR.txt", "信托项目信息中第"+(num+1)+"行的信托专户开户行名称字符长度大于60\r\n");
				}
				break;
			case 24://信托专户开户行机构编码
				if(temp.trim().length()<1){
        			iState=-1;
					Tools.writeStringToFile(bbwjlj+"/ERROR.txt", "信托项目信息中第"+(num+1)+"行的信托专户开户行机构编码必须填写\r\n");
				}
				if(temp.length()>40){
        			iState=-1;
					Tools.writeStringToFile(bbwjlj+"/ERROR.txt", "信托项目信息中第"+(num+1)+"行的信托专户开户行机构编码字符长度大于40\r\n");
				}
				break;
			case 25:
				if(temp_map.get(6).equalsIgnoreCase("集合信托计划") && temp.trim().length()<1){
        			iState=-1;
					Tools.writeStringToFile(bbwjlj+"/ERROR.txt", "信托项目信息中第"+(num+1)+"行的保管银行编号必须填写\r\n");
				}
				if(temp.length()>40){
        			iState=-1;
					Tools.writeStringToFile(bbwjlj+"/ERROR.txt", "信托项目信息中第"+(num+1)+"行的保管银行编号字符长度大于40\r\n");
				}
				break;
			case 26://保管行名称
				if(temp_map.get(6).equalsIgnoreCase("集合信托计划") && temp.trim().length()<1){
        			iState=-1;
					Tools.writeStringToFile(bbwjlj+"/ERROR.txt", "信托项目信息中第"+(num+1)+"行的保管行名称必须填写\r\n");
				}
				if(temp.length()>60){
        			iState=-1;
					Tools.writeStringToFile(bbwjlj+"/ERROR.txt", "信托项目信息中第"+(num+1)+"行的保管行名称字符长度大于60\r\n");
				}
				break;
			case 27://保管行机构编码
				if(temp_map.get(6).equalsIgnoreCase("集合信托计划") && temp.trim().length()<1){
        			iState=-1;
					Tools.writeStringToFile(bbwjlj+"/ERROR.txt", "信托项目信息中第"+(num+1)+"行的保管行机构编码必须填写\r\n");
				}
				if(temp.length()>40){
        			iState=-1;
					Tools.writeStringToFile(bbwjlj+"/ERROR.txt", "信托项目信息中第"+(num+1)+"行的保管行机构编码字符长度大于40\r\n");
				}
				if(!temp_map.get(25).equalsIgnoreCase(temp)){
        			iState=-1;
					Tools.writeStringToFile(bbwjlj+"/ERROR.txt", "信托项目信息中第"+(num+1)+"行的保管行机构编码与保管银行编号不一致\r\n");
				}
				break;
			case 28://投资顾问名称
				if(temp.length()>60){
        			iState=-1;
					Tools.writeStringToFile(bbwjlj+"/ERROR.txt", "信托项目信息中第"+(num+1)+"行的投资顾问名称字符长度大于60\r\n");
				}
				break;
			case 29://投资顾问机构代码
				if(temp.length()>40){
        			iState=-1;
					Tools.writeStringToFile(bbwjlj+"/ERROR.txt", "信托项目信息中第"+(num+1)+"行的投资顾问机构代码字符长度大于40\r\n");
				}
				break;
			case 30://其他委托代理机构名称
				if(temp.length()>60){
        			iState=-1;
					Tools.writeStringToFile(bbwjlj+"/ERROR.txt", "信托项目信息中第"+(num+1)+"行的其他委托代理机构名称字符长度大于60\r\n");
				}
				break;
			case 31://其他委托代理机构代码
				if(temp.length()>40){
        			iState=-1;
					Tools.writeStringToFile(bbwjlj+"/ERROR.txt", "信托项目信息中第"+(num+1)+"行的其他委托代理机构代码字符长度大于40\r\n");
				}
				break;
			case 32://其他委托代理机构职责
				if(temp.length()>1000){
        			iState=-1;
					Tools.writeStringToFile(bbwjlj+"/ERROR.txt", "信托项目信息中第"+(num+1)+"行的其他委托代理机构职责字符长度大于1000\r\n");
				}
				break;
			}	
			sb.append(temp+"|");
		}
		sb.deleteCharAt(sb.length()-1);
		sb.append("\r\n");
    	Tools.writeStringToFile(bbwjlj+"/XTXMXX.txt", sb.toString());
	}

	/** 创建交易对手(机构)上报文件
	 * @param temp_map 交易对手(机构)信息MAP数据
	 * @param bbwjlj 上报文件路径
	 */
	private void createJYDSJG(Map<Integer, String> temp_map, String bbwjlj,int num) {
    	StringBuffer sb = new StringBuffer(JRXKZHM+"|");
    	Map<Integer, String> xiangmuxinxi = new HashMap<Integer, String>();
		for(int j=0;j<temp_map.size();j++){
			String temp = temp_map.get(j);
			switch (j){
			case 0:
				if(!XTXMXX.containsKey(temp)){
        			iState=-1;
					Tools.writeStringToFile(bbwjlj+"/ERROR.txt", "交易对手-机构中第"+(num+1)+"行的信托项目编码和信托项目信息中的信托项目编码不一致\r\n");
					return ;
				}
				else{
					xiangmuxinxi=XTXMXX.get(temp);
				}
				break;
			case 1:
				if(temp.trim().length()<1){
        			iState=-1;
					Tools.writeStringToFile(bbwjlj+"/ERROR.txt", "交易对手-机构中第"+(num+1)+"行的投融资合同编号必须填写\r\n");
				}
				if(temp.length()>40){
        			iState=-1;
					Tools.writeStringToFile(bbwjlj+"/ERROR.txt", "交易对手-机构中第"+(num+1)+"行的投融资合同编号字符长度大于40\r\n");
				}
				break;
			case 2:
				if(temp.trim().length()<1){
        			iState=-1;
					Tools.writeStringToFile(bbwjlj+"/ERROR.txt", "交易对手-机构中第"+(num+1)+"行的交易对手编号必须填写\r\n");
				}
				if(temp.length()>40){
        			iState=-1;
					Tools.writeStringToFile(bbwjlj+"/ERROR.txt", "交易对手-机构中第"+(num+1)+"行的交易对手编号字符长度大于40\r\n");
				}
				break;
			case 3:
				if(temp.trim().length()<1){
        			iState=-1;
					Tools.writeStringToFile(bbwjlj+"/ERROR.txt", "交易对手-机构中第"+(num+1)+"行的交易对手全称必须填写\r\n");
				}
				if(temp.length()>60){
        			iState=-1;
					Tools.writeStringToFile(bbwjlj+"/ERROR.txt", "交易对手-机构中第"+(num+1)+"行的交易对手全称字符长度大于60\r\n");
				}
				break;
			case 4:
				if(xiangmuxinxi.get(3).compareToIgnoreCase("20120630")>=0 && temp.trim().length()<1){
        			iState=-1;
					Tools.writeStringToFile(bbwjlj+"/ERROR.txt", "交易对手-机构中第"+(num+1)+"行的2012年6月30日以后成立的项目必须填写法人代表名称\r\n");
				}
				if(temp.length()>20){
        			iState=-1;
					Tools.writeStringToFile(bbwjlj+"/ERROR.txt", "交易对手-机构中第"+(num+1)+"行的法人代表名称字符长度大于20\r\n");
				}
				break;
			case 5:
				if(temp.length()>0){
					if(ZJLX.containsKey(temp)){
						temp=ZJLX.get(temp);
					}
					else{
	        			iState=-1;
						Tools.writeStringToFile(bbwjlj+"/ERROR.txt", "交易对手-机构中第"+(num+1)+"行的法人证件类型错误\r\n");
					}
				}
				break;
			case 6:
				if(temp.length()>40){
        			iState=-1;
					Tools.writeStringToFile(bbwjlj+"/ERROR.txt", "交易对手-机构中第"+(num+1)+"行的法人证件号码字符长度大于40\r\n");
				}
				break;
			case 7://企业注册资本
				if(xiangmuxinxi.get(3).compareToIgnoreCase("20120630")>=0 && temp.trim().length()<1){
        			iState=-1;
					Tools.writeStringToFile(bbwjlj+"/ERROR.txt", "交易对手-机构中第"+(num+1)+"行的2012年6月30日以后成立的项目必须填写企业注册资本\r\n");
				}
				Double d=0d;
				try{
					d=Double.parseDouble(temp);
				}
				catch(Exception _err){
        			iState=-1;
					Tools.writeStringToFile(bbwjlj+"/ERROR.txt", "交易对手-机构中第"+(num+1)+"行的企业注册资本必须为数值类型\r\n");
				}
				if(d<10000){
        			iState=-1;
					Tools.writeStringToFile(bbwjlj+"/ERROR.txt", "交易对手-机构中第"+(num+1)+"行的企业注册资本必须大于10000\r\n");
				}
				break;
			case 8://企业成立日期
				
				break;
			case 9://企业注册地址
				if(xiangmuxinxi.get(3).compareToIgnoreCase("20120630")>=0 && temp.trim().length()<1){
        			iState=-1;
					Tools.writeStringToFile(bbwjlj+"/ERROR.txt", "交易对手-机构中第"+(num+1)+"行的2012年6月30日以后成立的项目必须填写企业注册地址\r\n");
				}
				if(temp.length()>60){
        			iState=-1;
					Tools.writeStringToFile(bbwjlj+"/ERROR.txt", "交易对手-机构中第"+(num+1)+"行的企业注册地址字符长度大于60\r\n");
				}
				break;
			case 10://组织机构代码证
				if(temp.trim().length()<1){
        			iState=-1;
					Tools.writeStringToFile(bbwjlj+"/ERROR.txt", "交易对手-机构中第"+(num+1)+"行的组织结构代码证必须填写\r\n");
				}
				if(temp.length()>40){
        			iState=-1;
					Tools.writeStringToFile(bbwjlj+"/ERROR.txt", "交易对手-机构中第"+(num+1)+"行的组织结构代码证字符长度大于40\r\n");
				}
				break;
			case 11://税务登记证
				if(temp.length()>40){
        			iState=-1;
					Tools.writeStringToFile(bbwjlj+"/ERROR.txt", "交易对手-机构中第"+(num+1)+"行的税务登记证字符长度大于40\r\n");
				}
				break;
			case 12://交易对手是否上市标识
				if(temp.trim().length()<1){
        			iState=-1;
					Tools.writeStringToFile(bbwjlj+"/ERROR.txt", "交易对手-机构中第"+(num+1)+"行的交易对手是否上市标识必须填写\r\n");
				}
				else if(JYDSSFSSBS.containsKey(temp)){
					temp=JYDSSFSSBS.get(temp);
				}
				else{
        			iState=-1;
					Tools.writeStringToFile(bbwjlj+"/ERROR.txt", "交易对手-机构中第"+(num+1)+"行的交易对手是否上市标识错误\r\n");
				}
				break;
			case 13://交易对手是否平台标识
				if(temp.trim().length()<1){
        			iState=-1;
					Tools.writeStringToFile(bbwjlj+"/ERROR.txt", "交易对手-机构中第"+(num+1)+"行的交易对手是否平台标识必须填写\r\n");
				}
				else if(JYDSSFPTBS.containsKey(temp)){
					temp=JYDSSFPTBS.get(temp);
				}
				else{
        			iState=-1;
					Tools.writeStringToFile(bbwjlj+"/ERROR.txt", "交易对手-机构中第"+(num+1)+"行的交易对手是否平台标识错误\r\n");
				}
				break;
			case 14://交易对手是否“三农”标识
				if(xiangmuxinxi.get(3).compareToIgnoreCase("20120630")>=0 && temp.trim().length()<1){
        			iState=-1;
					Tools.writeStringToFile(bbwjlj+"/ERROR.txt", "交易对手-机构中第"+(num+1)+"行的2012年6月30日以后成立的项目必须填写交易对手是否“三农”标识\r\n");
				}
				if(ShiFou.containsKey(temp)){
					temp=ShiFou.get(temp);
				}
				else if(temp.trim().length()>0){
        			iState=-1;
					Tools.writeStringToFile(bbwjlj+"/ERROR.txt", "交易对手-机构中第"+(num+1)+"行的交易对手是否“三农”标识错误\r\n");
				}
				break;
			case 15://交易对手企业类型
				if(xiangmuxinxi.get(3).compareToIgnoreCase("20120630")>=0 && temp.trim().length()<1){
        			iState=-1;
					Tools.writeStringToFile(bbwjlj+"/ERROR.txt", "交易对手-机构中第"+(num+1)+"行的2012年6月30日以后成立的项目必须填写交易对手企业类型\r\n");
				}
				if(QYLX.containsKey(temp)){
					temp=QYLX.get(temp);
				}
				else if(temp.trim().length()>0){
        			iState=-1;
					Tools.writeStringToFile(bbwjlj+"/ERROR.txt", "交易对手-机构中第"+(num+1)+"行的交易对手企业类型错误\r\n");
				}
				break;
			case 16://交易对手所属行业
				if(SSHY.containsKey(temp)){
					temp=SSHY.get(temp);
				}
				else{
        			iState=-1;
					Tools.writeStringToFile(bbwjlj+"/ERROR.txt", "交易对手-机构中第"+(num+1)+"行的交易对手所属行业错误\r\n");
				}
				break;
			case 17://交易对手企业总资产
				if(xiangmuxinxi.get(3).compareToIgnoreCase("20120630")>=0 && temp.trim().length()<1){
        			iState=-1;
					Tools.writeStringToFile(bbwjlj+"/ERROR.txt", "交易对手-机构中第"+(num+1)+"行的2012年6月30日以后成立的项目必须填写交易对手企业类型\r\n");
				}
				else if(temp.length()>0){
					try{
						Double.parseDouble(temp);
					}
					catch(Exception _err){
	        			iState=-1;
						Tools.writeStringToFile(bbwjlj+"/ERROR.txt", "交易对手-机构中第"+(num+1)+"行的交易对手企业总资产必须为数值类型\r\n");
					}
				}
				break;
			case 18://交易对手企业总负债
				if(xiangmuxinxi.get(3).compareToIgnoreCase("20120630")>=0 && temp.trim().length()<1){
        			iState=-1;
					Tools.writeStringToFile(bbwjlj+"/ERROR.txt", "交易对手-机构中第"+(num+1)+"行的2012年6月30日以后成立的项目必须填写交易对手企业总负债\r\n");
				}
				else if(temp.length()>0){
					try{
						Double.parseDouble(temp);
					}
					catch(Exception _err){
	        			iState=-1;
						Tools.writeStringToFile(bbwjlj+"/ERROR.txt", "交易对手-机构中第"+(num+1)+"行的交易对手企业总负债必须为数值类型\r\n");
					}
				}
				break;
			}	
			sb.append(temp+"|");
		}
		sb.deleteCharAt(sb.length()-1);
		sb.append("\r\n");
    	Tools.writeStringToFile(bbwjlj+"/JYDSXX_JG.txt", sb.toString());
	}

	/** 创建交易对手(个人)上报文件
	 * @param temp_map 交易对手(个人)信息MAP数据
	 * @param bbwjlj 上报文件路径
	 */
	private void createJYDSGR(Map<Integer, String> temp_map, String bbwjlj,int num) {
    	StringBuffer sb = new StringBuffer(JRXKZHM+"|");
    	Map<Integer, String> xiangmuxinxi = new HashMap<Integer, String>();
		for(int j=0;j<temp_map.size();j++){
			String temp = temp_map.get(j);
			switch (j){
			case 0:
				if(!XTXMXX.containsKey(temp)){
        			iState=-1;
					Tools.writeStringToFile(bbwjlj+"/ERROR.txt", "交易对手-个人中第"+(num+1)+"行的信托项目编码和信托项目信息中的信托项目编码不一致\r\n");
					return ;
				}
				else{
					xiangmuxinxi=XTXMXX.get(temp);
				}
				break;
			case 1:
				if(temp.trim().length()<1){
        			iState=-1;
					Tools.writeStringToFile(bbwjlj+"/ERROR.txt", "交易对手-个人中第"+(num+1)+"行的投融资合同编号必须填写\r\n");
				}
				if(temp.length()>40){
        			iState=-1;
					Tools.writeStringToFile(bbwjlj+"/ERROR.txt", "交易对手-个人中第"+(num+1)+"行的投融资合同编号字符长度大于40\r\n");
				}
				break;
			case 2:
				if(temp.trim().length()<1){
        			iState=-1;
					Tools.writeStringToFile(bbwjlj+"/ERROR.txt", "交易对手-个人中第"+(num+1)+"行的交易对手编号必须填写\r\n");
				}
				if(temp.length()>40){
        			iState=-1;
					Tools.writeStringToFile(bbwjlj+"/ERROR.txt", "交易对手-个人中第"+(num+1)+"行的交易对手编号字符长度大于40\r\n");
				}
				break;
			case 3:
				if(temp.trim().length()<1){
        			iState=-1;
					Tools.writeStringToFile(bbwjlj+"/ERROR.txt", "交易对手-个人中第"+(num+1)+"行的交易对手姓名必须填写\r\n");
				}
				if(temp.length()>20){
        			iState=-1;
					Tools.writeStringToFile(bbwjlj+"/ERROR.txt", "交易对手-个人中第"+(num+1)+"行的交易对手姓名字符长度大于20\r\n");
				}
				break;
			case 4:
				if(ZJLX.containsKey(temp)){
					temp=ZJLX.get(temp);
				}
				else{
        			iState=-1;
					Tools.writeStringToFile(bbwjlj+"/ERROR.txt", "交易对手-个人中第"+(num+1)+"行的交易对手证件类型错误\r\n");
				}
				break;
			case 5:
				if(temp.trim().length()<1){
        			iState=-1;
					Tools.writeStringToFile(bbwjlj+"/ERROR.txt", "交易对手-个人中第"+(num+1)+"行的交易对手证件号码必须填写\r\n");
				}
				if(temp.length()>40){
        			iState=-1;
					Tools.writeStringToFile(bbwjlj+"/ERROR.txt", "交易对手-个人中第"+(num+1)+"行的交易对手证件号码字符长度大于40\r\n");
				}
				break;
			case 6://交易对手国籍
				if(temp.length()>20){
        			iState=-1;
					Tools.writeStringToFile(bbwjlj+"/ERROR.txt", "交易对手-个人中第"+(num+1)+"行的组织结构代码证字符长度大于20\r\n");
				}
				break;
			case 7://交易对手出生日期
				if(temp.trim().length()<1){
        			iState=-1;
					Tools.writeStringToFile(bbwjlj+"/ERROR.txt", "交易对手-个人中第"+(num+1)+"行的交易对手出生日期必须填写\r\n");
				}
				SimpleDateFormat format = new SimpleDateFormat("yyyyMMdd");
				try {
					Date d=format.parse(temp);
					if(temp.compareToIgnoreCase("19000101")<1 || temp.compareToIgnoreCase(format.format(new Date()))>=0){
	        			iState=-1;
						Tools.writeStringToFile(bbwjlj+"/ERROR.txt", "交易对手-个人中第"+(num+1)+"行的交易对手出生日期错误\r\n");
					}
				} catch (ParseException e) {
					iState=-1;
					Tools.writeStringToFile(bbwjlj+"/ERROR.txt", "交易对手-个人中第"+(num+1)+"行的交易对手出生日期格式错误\r\n");
				}
				
				break;
			case 8://交易对手居住地址
				if(temp.length()>60){
        			iState=-1;
					Tools.writeStringToFile(bbwjlj+"/ERROR.txt", "交易对手-个人中第"+(num+1)+"行的交易对手居住地址字符长度大于60\r\n");
				}
				break;
			case 9://交易对手居住地所在国家
				if(temp.length()>20){
        			iState=-1;
					Tools.writeStringToFile(bbwjlj+"/ERROR.txt", "交易对手-个人中第"+(num+1)+"行的交易对手居住地所在国家字符长度大于20\r\n");
				}
				break;
			case 10://交易对手居住地所在城市
				if(xiangmuxinxi.get(3).compareToIgnoreCase("20120630")>=0 && temp.trim().length()<1){
        			iState=-1;
					Tools.writeStringToFile(bbwjlj+"/ERROR.txt", "交易对手-个人中第"+(num+1)+"行的2012年6月30日以后成立的项目必须填写交易对手居住地所在城市\r\n");
				}
				if(temp.length()>20){
        			iState=-1;
					Tools.writeStringToFile(bbwjlj+"/ERROR.txt", "交易对手-个人中第"+(num+1)+"行的交易对手居住地所在城市字符长度大于20\r\n");
				}
				break;
			case 11://交易对手个人年收入金额
				if(temp.length()>0){
					try{
						Double.parseDouble(temp);
					}
					catch(Exception _err){
	        			iState=-1;
						Tools.writeStringToFile(bbwjlj+"/ERROR.txt", "交易对手-个人中第"+(num+1)+"行的交易对手个人年收入金额必须为数值类型\r\n");
					}
				}
				break;
			case 12://交易对手家庭年收入金额
				if(temp.length()>0){
					try{
						Double.parseDouble(temp);
					}
					catch(Exception _err){
	        			iState=-1;
						Tools.writeStringToFile(bbwjlj+"/ERROR.txt", "交易对手-个人中第"+(num+1)+"行的交易对手家庭年收入金额必须为数值类型\r\n");
					}
				}
				break;
			}	
			sb.append(temp+"|");
		}
		sb.deleteCharAt(sb.length()-1);
		sb.append("\r\n");
    	Tools.writeStringToFile(bbwjlj+"/JYDSXX_GR.txt", sb.toString());
	}

	/** 创建投融资合同信息上报文件
	 * @param temp_map 投融资合同信息MAP数据
	 * @param bbwjlj 上报文件路径
	 */
	private void createTRZHTXX(Map<Integer, String> temp_map, String bbwjlj,int num) {
    	StringBuffer sb = new StringBuffer(JRXKZHM+"|");
    	String strTRZXS="";
		SimpleDateFormat format = new SimpleDateFormat("yyyyMMdd");
    	Map<Integer, String> xiangmuxinxi = new HashMap<Integer, String>();
		for(int j=0;j<temp_map.size();j++){
			String temp = temp_map.get(j);
			switch (j){
			case 0:
				if(!XTXMXX.containsKey(temp)){
        			iState=-1;
					Tools.writeStringToFile(bbwjlj+"/ERROR.txt", "投融资合同信息中第"+(num+1)+"行的信托项目编码和信托项目信息中的信托项目编码不一致\r\n");
					return ;
				}
				else{
					xiangmuxinxi=XTXMXX.get(temp);
				}
				break;
			case 1:
				if(temp.trim().length()<1){
        			iState=-1;
					Tools.writeStringToFile(bbwjlj+"/ERROR.txt", "投融资合同信息中第"+(num+1)+"行的交易对手编号必须填写\r\n");
				}
				if(temp.length()>40){
        			iState=-1;
					Tools.writeStringToFile(bbwjlj+"/ERROR.txt", "投融资合同信息中第"+(num+1)+"行的交易对手编号字符长度大于40\r\n");
				}
				break;
			case 2:
				if(temp.trim().length()<1){
        			iState=-1;
					Tools.writeStringToFile(bbwjlj+"/ERROR.txt", "投融资合同信息中第"+(num+1)+"行的交易对手类型必须填写\r\n");
				}
				if(!JYDSLX.containsKey(temp)){
        			iState=-1;
					Tools.writeStringToFile(bbwjlj+"/ERROR.txt", "投融资合同信息中第"+(num+1)+"行的交易对手类型错误\r\n");
				}
				else{
					temp=JYDSLX.get(temp);
				}
				break;
			case 3://交易对手证件号码
				if(JYDSLX.get(temp_map.get(2)).equalsIgnoreCase("0") && temp.trim().length()<1){
        			iState=-1;
					Tools.writeStringToFile(bbwjlj+"/ERROR.txt", "投融资合同信息中第"+(num+1)+"行的交易对手类型为自然人时必须填写交易对手证件号码\r\n");
				}
				if(temp.length()>20){
        			iState=-1;
					Tools.writeStringToFile(bbwjlj+"/ERROR.txt", "投融资合同信息中第"+(num+1)+"行的交易对手证件号码字符长度大于20\r\n");
				}
				break;
			case 4://交易对手组织机构代码
				if(JYDSLX.get(temp_map.get(2)).equalsIgnoreCase("1") && temp.trim().length()<1){
        			iState=-1;
					Tools.writeStringToFile(bbwjlj+"/ERROR.txt", "投融资合同信息中第"+(num+1)+"行的交易对手类型为机构时必须填写交易对手组织机构代码\r\n");
				}
				if(temp.length()>20){
        			iState=-1;
					Tools.writeStringToFile(bbwjlj+"/ERROR.txt", "投融资合同信息中第"+(num+1)+"行的交易对手组织机构代码字符长度大于20\r\n");
				}
				break;
			case 5://投融资合同编号
				if(temp.trim().length()<1){
        			iState=-1;
					Tools.writeStringToFile(bbwjlj+"/ERROR.txt", "投融资合同信息中第"+(num+1)+"行的投融资合同编号必须填写\r\n");
				}
				if(temp.length()>20){
        			iState=-1;
					Tools.writeStringToFile(bbwjlj+"/ERROR.txt", "投融资合同信息中第"+(num+1)+"行的投融资合同编号字符长度大于20\r\n");
				}
				break;
			case 6://投融资合同签订日期
				if(temp.trim().length()<1){
        			iState=-1;
					Tools.writeStringToFile(bbwjlj+"/ERROR.txt", "投融资合同信息中第"+(num+1)+"行的投融资合同签订日期必须填写\r\n");
				}
				try {
					Date d=format.parse(temp);
					if(temp.compareToIgnoreCase("19800101")<1 || temp.compareToIgnoreCase(format.format(new Date()))>=0){
	        			iState=-1;
						Tools.writeStringToFile(bbwjlj+"/ERROR.txt", "投融资合同信息中第"+(num+1)+"行的投融资合同签订日期错误\r\n");
					}
				} catch (ParseException e) {
					iState=-1;
					Tools.writeStringToFile(bbwjlj+"/ERROR.txt", "投融资合同信息中第"+(num+1)+"行的投融资合同签订日期格式错误\r\n");
				}
				break;
			case 7://投融资形式
				if(temp.trim().length()<1){
        			iState=-1;
					Tools.writeStringToFile(bbwjlj+"/ERROR.txt", "投融资合同信息中第"+(num+1)+"行的投融资形式必须填写\r\n");
				}
				if(!TRZXS.containsKey(temp)){
        			iState=-1;
					Tools.writeStringToFile(bbwjlj+"/ERROR.txt", "投融资合同信息中第"+(num+1)+"行的投融资形式错误\r\n");
				}
				else{
					temp=TRZXS.get(temp);
					strTRZXS=temp;
				}
				break;
			case 8://投融资合同签订金额
				if(temp.trim().length()<1){
        			iState=-1;
					Tools.writeStringToFile(bbwjlj+"/ERROR.txt", "投融资合同信息中第"+(num+1)+"行的投融资合同签订金额必须填写\r\n");
				}
				else{
					try{
						Double.parseDouble(temp);
					}
					catch(Exception _err){
	        			iState=-1;
						Tools.writeStringToFile(bbwjlj+"/ERROR.txt", "投融资合同信息中第"+(num+1)+"行的投融资合同签订金额必须为数值类型\r\n");
					}
				}
				break;
			case 9://投融资余额
				if(temp.trim().length()<1){
        			iState=-1;
					Tools.writeStringToFile(bbwjlj+"/ERROR.txt", "投融资合同信息中第"+(num+1)+"行的投融资余额必须填写\r\n");
				}
				else{
					try{
						Double.parseDouble(temp);
					}
					catch(Exception _err){
	        			iState=-1;
						Tools.writeStringToFile(bbwjlj+"/ERROR.txt", "投融资合同信息中第"+(num+1)+"行的投融资余额必须为数值类型\r\n");
					}
				}
				break;
			case 10://融资合同利率
				if(",0,1,2,3,4,5,".indexOf(","+strTRZXS+",")>=0 && temp.trim().length()<1){
        			iState=-1;
					Tools.writeStringToFile(bbwjlj+"/ERROR.txt", "投融资合同信息中第"+(num+1)+"行的投融资形式为“贷款”、“租赁”“投资附回购”、“投资附回购选择权”、“资产买入返售或回购承诺”、“收益权投资附回购或回购选择权”时必须填写融资合同利率\r\n");
				}
				if(temp.trim().length()>0){
					try{
						Double.parseDouble(temp);
					}
					catch(Exception _err){
	        			iState=-1;
						Tools.writeStringToFile(bbwjlj+"/ERROR.txt", "投融资合同信息中第"+(num+1)+"行的融资合同利率必须为数值类型\r\n");
					}
				}
				break;
			case 11://综合融资成本
				if(",0,1,2,3,4,5,".indexOf(","+strTRZXS+",")>=0 && temp.trim().length()<1){
        			iState=-1;
					Tools.writeStringToFile(bbwjlj+"/ERROR.txt", "投融资合同信息中第"+(num+1)+"行的投融资形式为“贷款”、“租赁”“投资附回购”、“投资附回购选择权”、“资产买入返售或回购承诺”、“收益权投资附回购或回购选择权”时必须填写综合融资成本\r\n");
				}
				if(temp.trim().length()>0){
					try{
						Double.parseDouble(temp);
					}
					catch(Exception _err){
	        			iState=-1;
						Tools.writeStringToFile(bbwjlj+"/ERROR.txt", "投融资合同信息中第"+(num+1)+"行的综合融资成本必须为数值类型\r\n");
					}
				}
				break;
			case 12://融资首次放款日期
				if(",0,1,2,3,4,5,".indexOf(","+strTRZXS+",")>=0 && temp.trim().length()<1){
        			iState=-1;
					Tools.writeStringToFile(bbwjlj+"/ERROR.txt", "投融资合同信息中第"+(num+1)+"行的投融资形式为“贷款”、“租赁”“投资附回购”、“投资附回购选择权”、“资产买入返售或回购承诺”、“收益权投资附回购或回购选择权”时必须填写融资首次放款日期\r\n");
				}
				if(temp.trim().length()>0){
					try {
						Date d=format.parse(temp);
						if(temp.compareToIgnoreCase("19800101")<1 || temp.compareToIgnoreCase(format.format(new Date()))>=0){
		        			iState=-1;
							Tools.writeStringToFile(bbwjlj+"/ERROR.txt", "投融资合同信息中第"+(num+1)+"行的融资首次放款日期错误\r\n");
						}
					} catch (ParseException e) {
						iState=-1;
						Tools.writeStringToFile(bbwjlj+"/ERROR.txt", "投融资合同信息中第"+(num+1)+"行的融资首次放款日期格式错误\r\n");
					}
				}
				break;
			case 13://融资合同到期日期
				if(",0,1,2,3,4,5,".indexOf(","+strTRZXS+",")>=0 && temp.trim().length()<1){
        			iState=-1;
					Tools.writeStringToFile(bbwjlj+"/ERROR.txt", "投融资合同信息中第"+(num+1)+"行的投融资形式为“贷款”、“租赁”“投资附回购”、“投资附回购选择权”、“资产买入返售或回购承诺”、“收益权投资附回购或回购选择权”时必须填写融资合同到期日期\r\n");
				}
				if(temp.trim().length()>0){
					try {
						Date d=format.parse(temp);
						if(temp.compareToIgnoreCase("19800101")<1){
		        			iState=-1;
							Tools.writeStringToFile(bbwjlj+"/ERROR.txt", "投融资合同信息中第"+(num+1)+"行的融资合同到期日期错误\r\n");
						}
					} catch (ParseException e) {
						iState=-1;
						Tools.writeStringToFile(bbwjlj+"/ERROR.txt", "投融资合同信息中第"+(num+1)+"行的融资合同到期日期格式错误\r\n");
					}
				}
				break;
			case 14://融资期限
				if(",0,1,2,3,4,5,".indexOf(","+strTRZXS+",")>=0 && temp.trim().length()<1){
        			iState=-1;
					Tools.writeStringToFile(bbwjlj+"/ERROR.txt", "投融资合同信息中第"+(num+1)+"行的投融资形式为“贷款”、“租赁”“投资附回购”、“投资附回购选择权”、“资产买入返售或回购承诺”、“收益权投资附回购或回购选择权”时必须填写融资期限\r\n");
				}
				if(temp.trim().length()>0){
					try{
						Double.parseDouble(temp);
					}
					catch(Exception _err){
	        			iState=-1;
						Tools.writeStringToFile(bbwjlj+"/ERROR.txt", "投融资合同信息中第"+(num+1)+"行的融资期限必须为数值类型\r\n");
					}
				}
				break;
			case 15://投融资项目的信托资金投向
				if(SSHY.containsKey(temp)){
					temp=SSHY.get(temp);
				}
				else{
        			iState=-1;
					Tools.writeStringToFile(bbwjlj+"/ERROR.txt", "投融资合同信息中第"+(num+1)+"行的投融资项目的信托资金投向错误\r\n");
				}
				break;
			case 16://还款方式
				if(",0,1,2,3,4,5,".indexOf(","+strTRZXS+",")>=0 && temp.trim().length()<1){
        			iState=-1;
					Tools.writeStringToFile(bbwjlj+"/ERROR.txt", "投融资合同信息中第"+(num+1)+"行的投融资形式为“贷款”、“租赁”“投资附回购”、“投资附回购选择权”、“资产买入返售或回购承诺”、“收益权投资附回购或回购选择权”时必须填写还款方式\r\n");
				}
				if(temp.trim().length()>0){
					if(HKFS.containsKey(temp)){
						temp=HKFS.get(temp);
					}
					else{
	        			iState=-1;
						Tools.writeStringToFile(bbwjlj+"/ERROR.txt", "投融资合同信息中第"+(num+1)+"行的还款方式错误\r\n");
					}
				}
				break;
			case 17://标的资产名称
				if(",6,7,8,".indexOf(","+strTRZXS+",")>=0 && temp.trim().length()<1){
        			iState=-1;
					Tools.writeStringToFile(bbwjlj+"/ERROR.txt", "投融资合同信息中第"+(num+1)+"行的投融资形式为“股权投资”、“实物投资”“资产或收益权买断式投资”时必须填写标的资产名称\r\n");
				}
				if(temp.length()>80){
        			iState=-1;
					Tools.writeStringToFile(bbwjlj+"/ERROR.txt", "投融资合同信息中第"+(num+1)+"行的标的资产名称字符长度大于80\r\n");
				}
				break;
			case 18://标的资产入账价值
				if(",6,7,8,".indexOf(","+strTRZXS+",")>=0 && temp.trim().length()<1){
        			iState=-1;
					Tools.writeStringToFile(bbwjlj+"/ERROR.txt", "投融资合同信息中第"+(num+1)+"行的投融资形式为“股权投资”、“实物投资”“资产或收益权买断式投资”时必须填写标的资产入账价值\r\n");
				}
				if(temp.trim().length()>0){
					try{
						Double.parseDouble(temp);
					}
					catch(Exception _err){
	        			iState=-1;
						Tools.writeStringToFile(bbwjlj+"/ERROR.txt", "投融资合同信息中第"+(num+1)+"行的标的资产入账价值必须为数值类型\r\n");
					}
				}
				break;
			}	
			sb.append(temp+"|");
		}
		sb.deleteCharAt(sb.length()-1);
		sb.append("\r\n");
    	Tools.writeStringToFile(bbwjlj+"/TRZHTXX.txt", sb.toString());
	}

	/** 创建房地产类项目信息上报文件
	 * @param temp_map 房地产类项目信息MAP数据
	 * @param bbwjlj 上报文件路径
	 */
	private void createFDCXMXX(Map<Integer, String> temp_map, String bbwjlj,int num) {
    	StringBuffer sb = new StringBuffer(JRXKZHM+"|");
		for(int j=0;j<temp_map.size();j++){
			String temp = temp_map.get(j);
			switch (j){
			case 0:
				if(!XTXMXX.containsKey(temp)){
        			iState=-1;
					Tools.writeStringToFile(bbwjlj+"/ERROR.txt", "房地产类项目信息中第"+(num+1)+"行的信托项目编码和信托项目信息中的信托项目编码不一致\r\n");
					return ;
				}
				break;
			case 1://投融资合同编号
				if(temp.trim().length()<1){
        			iState=-1;
					Tools.writeStringToFile(bbwjlj+"/ERROR.txt", "房地产类项目信息中第"+(num+1)+"行的投融资合同编号必须填写\r\n");
				}
				if(temp.length()>20){
        			iState=-1;
					Tools.writeStringToFile(bbwjlj+"/ERROR.txt", "房地产类项目信息中第"+(num+1)+"行的投融资合同编号字符长度大于20\r\n");
				}
				if(!TRZHTXX.containsKey(temp)){
        			iState=-1;
					Tools.writeStringToFile(bbwjlj+"/ERROR.txt", "房地产类项目信息中第"+(num+1)+"行的投融资合同编号和投融资合同信息中的投融资合同编号不一致\r\n");
					return ;
				}
				break;
			case 2://房地产项目类型
				if(temp.trim().length()<1){
        			iState=-1;
					Tools.writeStringToFile(bbwjlj+"/ERROR.txt", "房地产类项目信息中第"+(num+1)+"行的房地产项目类型必须填写\r\n");
				}
				if(!FDCXMLX.containsKey(temp)){
        			iState=-1;
					Tools.writeStringToFile(bbwjlj+"/ERROR.txt", "房地产类项目信息中第"+(num+1)+"行的房地产项目类型错误\r\n");
				}
				else{
					temp=FDCXMLX.get(temp);
				}
				break;
			case 3://项目具体名称
				if(temp.trim().length()<1){
        			iState=-1;
					Tools.writeStringToFile(bbwjlj+"/ERROR.txt", "房地产类项目信息中第"+(num+1)+"行的项目具体名称必须填写\r\n");
				}
				if(temp.length()>80){
        			iState=-1;
					Tools.writeStringToFile(bbwjlj+"/ERROR.txt", "房地产类项目信息中第"+(num+1)+"行的项目具体名称字符长度大于80\r\n");
				}
				break;
			case 4://项目地理位置
				if(temp.trim().length()<1){
        			iState=-1;
					Tools.writeStringToFile(bbwjlj+"/ERROR.txt", "房地产类项目信息中第"+(num+1)+"行的项目地理位置必须填写\r\n");
				}
				if(temp.length()>40){
        			iState=-1;
					Tools.writeStringToFile(bbwjlj+"/ERROR.txt", "房地产类项目信息中第"+(num+1)+"行的项目地理位置字符长度大于40\r\n");
				}
				break;
			case 5://项目所在地邮编
				if(temp.length()>10){
        			iState=-1;
					Tools.writeStringToFile(bbwjlj+"/ERROR.txt", "房地产类项目信息中第"+(num+1)+"行的项目所在地邮编字符长度大于10\r\n");
				}
				break;
			case 6://开发商组织机构代码
				if(temp.trim().length()<1){
        			iState=-1;
					Tools.writeStringToFile(bbwjlj+"/ERROR.txt", "房地产类项目信息中第"+(num+1)+"行的开发商组织机构代码必须填写\r\n");
				}
				if(temp.length()>40){
        			iState=-1;
					Tools.writeStringToFile(bbwjlj+"/ERROR.txt", "房地产类项目信息中第"+(num+1)+"行的开发商组织机构代码字符长度大于40\r\n");
				}
				break;
			case 7://开发商名称
				if(temp.trim().length()<1){
        			iState=-1;
					Tools.writeStringToFile(bbwjlj+"/ERROR.txt", "房地产类项目信息中第"+(num+1)+"行的开发商名称必须填写\r\n");
				}
				if(temp.length()>60){
        			iState=-1;
					Tools.writeStringToFile(bbwjlj+"/ERROR.txt", "房地产类项目信息中第"+(num+1)+"行的开发商名称字符长度大于60\r\n");
				}
				break;
			case 8://总投资金额
				if(temp.trim().length()<1){
        			iState=-1;
					Tools.writeStringToFile(bbwjlj+"/ERROR.txt", "房地产类项目信息中第"+(num+1)+"行的总投资金额必须填写\r\n");
				}
				else{
					try{
						Double.parseDouble(temp);
					}
					catch(Exception _err){
	        			iState=-1;
						Tools.writeStringToFile(bbwjlj+"/ERROR.txt", "房地产类项目信息中第"+(num+1)+"行的总投资金额必须为数值类型\r\n");
					}
				}
				break;
			case 9://总建筑面积
				if(temp.trim().length()<1){
        			iState=-1;
					Tools.writeStringToFile(bbwjlj+"/ERROR.txt", "房地产类项目信息中第"+(num+1)+"行的总建筑面积必须填写\r\n");
				}
				else{
					try{
						Double.parseDouble(temp);
					}
					catch(Exception _err){
	        			iState=-1;
						Tools.writeStringToFile(bbwjlj+"/ERROR.txt", "房地产类项目信息中第"+(num+1)+"行的总建筑面积必须为数值类型\r\n");
					}
				}
				break;
			case 10://总占地面积
				if(temp.trim().length()<1){
        			iState=-1;
					Tools.writeStringToFile(bbwjlj+"/ERROR.txt", "房地产类项目信息中第"+(num+1)+"行的总占地面积必须填写\r\n");
				}
				else{
					try{
						Double.parseDouble(temp);
					}
					catch(Exception _err){
	        			iState=-1;
						Tools.writeStringToFile(bbwjlj+"/ERROR.txt", "房地产类项目信息中第"+(num+1)+"行的总占地面积必须为数值类型\r\n");
					}
				}
				break;
			case 11://容积率
				if(temp.trim().length()>0){
					try{
						Double.parseDouble(temp);
					}
					catch(Exception _err){
	        			iState=-1;
						Tools.writeStringToFile(bbwjlj+"/ERROR.txt", "房地产类项目信息中第"+(num+1)+"行的容积率必须为数值类型\r\n");
					}
				}
				break;
			case 12://资本金比例
				if(temp.trim().length()<1){
        			iState=-1;
					Tools.writeStringToFile(bbwjlj+"/ERROR.txt", "房地产类项目信息中第"+(num+1)+"行的资本金比例必须填写\r\n");
				}
				if(temp.trim().length()>0){
					try{
						Double.parseDouble(temp);
					}
					catch(Exception _err){
	        			iState=-1;
						Tools.writeStringToFile(bbwjlj+"/ERROR.txt", "房地产类项目信息中第"+(num+1)+"行的资本金比例必须为数值类型\r\n");
					}
				}
				break;
			case 13://是否办理了国有土地使用证
				if(temp.trim().length()<1){
        			iState=-1;
					Tools.writeStringToFile(bbwjlj+"/ERROR.txt", "房地产类项目信息中第"+(num+1)+"行的是否办理了国有土地使用证必须填写\r\n");
				}
				if(!ShiFou.containsKey(temp)){
        			iState=-1;
					Tools.writeStringToFile(bbwjlj+"/ERROR.txt", "房地产类项目信息中第"+(num+1)+"行的是否办理了国有土地使用证错误\r\n");
				}
				else{
					temp=ShiFou.get(temp);
				}
				break;
			case 14://国有土地使用证号
				if("是".equalsIgnoreCase(temp_map.get(13)) && temp.trim().length()<1){
        			iState=-1;
					Tools.writeStringToFile(bbwjlj+"/ERROR.txt", "房地产类项目信息中第"+(num+1)+"行当办理了国有土地使用证时必须填写国有土地使用证号\r\n");
				}
				if(temp.length()>200){
        			iState=-1;
					Tools.writeStringToFile(bbwjlj+"/ERROR.txt", "房地产类项目信息中第"+(num+1)+"行的国有土地使用证号字符长度大于40\r\n");
				}
				if(temp.trim().length()>5){
					String[] tt=temp.trim().split("/");
					for(String ttt:tt){
						if(ttt==null || ttt.trim().length()<1){
		        			iState=0;
							Tools.writeStringToFile(bbwjlj+"/ERROR.txt", "房地产类项目信息中第"+(num+1)+"行的国有土地使用证号多个证件号之间应使用英文“/”字符分割，并且字符长度大于0\r\n");
						}
						else if(ttt.trim().length()<1){
		        			iState=0;
							Tools.writeStringToFile(bbwjlj+"/ERROR.txt", "房地产类项目信息中第"+(num+1)+"行的国有土地使用证号多个证件号之间应使用英文“/”字符分割，并且字符长度不大于40\r\n");
						}
					}
				}
				break;
			case 15://是否办理了建设用地规划许可证
				if(temp.trim().length()<1){
        			iState=-1;
					Tools.writeStringToFile(bbwjlj+"/ERROR.txt", "房地产类项目信息中第"+(num+1)+"行的是否办理了建设用地规划许可证必须填写\r\n");
				}
				if(!ShiFou.containsKey(temp)){
        			iState=-1;
					Tools.writeStringToFile(bbwjlj+"/ERROR.txt", "房地产类项目信息中第"+(num+1)+"行的是否办理了建设用地规划许可证错误\r\n");
				}
				else{
					temp=ShiFou.get(temp);
				}
				break;
			case 16://建设用地规划许可证号
				if("是".equalsIgnoreCase(temp_map.get(15)) && temp.trim().length()<1){
        			iState=-1;
					Tools.writeStringToFile(bbwjlj+"/ERROR.txt", "房地产类项目信息中第"+(num+1)+"行当办理了建设用地规划许可证时必须填写建设用地规划许可证号\r\n");
				}
				if(temp.length()>200){
        			iState=-1;
					Tools.writeStringToFile(bbwjlj+"/ERROR.txt", "房地产类项目信息中第"+(num+1)+"行的建设用地规划许可证号字符长度大于40\r\n");
				}
				if(temp.trim().length()>5){
					String[] tt=temp.trim().split("/");
					for(String ttt:tt){
						if(ttt==null || ttt.trim().length()<1){
		        			iState=0;
							Tools.writeStringToFile(bbwjlj+"/ERROR.txt", "房地产类项目信息中第"+(num+1)+"行的建设用地规划许可证号多个证件号之间应使用英文“/”字符分割，并且字符长度大于0\r\n");
						}
						else if(ttt.trim().length()<1){
		        			iState=0;
							Tools.writeStringToFile(bbwjlj+"/ERROR.txt", "房地产类项目信息中第"+(num+1)+"行的建设用地规划许可证号多个证件号之间应使用英文“/”字符分割，并且字符长度不大于40\r\n");
						}
					}
				}
				break;
			case 17://是否办理了建筑工程规划许可证
				if(temp.trim().length()<1){
        			iState=-1;
					Tools.writeStringToFile(bbwjlj+"/ERROR.txt", "房地产类项目信息中第"+(num+1)+"行的是否办理了建筑工程规划许可证必须填写\r\n");
				}
				if(!ShiFou.containsKey(temp)){
        			iState=-1;
					Tools.writeStringToFile(bbwjlj+"/ERROR.txt", "房地产类项目信息中第"+(num+1)+"行的是否办理了建筑工程规划许可证错误\r\n");
				}
				else{
					temp=ShiFou.get(temp);
				}
				break;
			case 18://建筑工程规划许可证号
				if("是".equalsIgnoreCase(temp_map.get(17)) && temp.trim().length()<1){
        			iState=-1;
					Tools.writeStringToFile(bbwjlj+"/ERROR.txt", "房地产类项目信息中第"+(num+1)+"行当办理了建筑工程规划许可证时必须填写建筑工程规划许可证号\r\n");
				}
				if(temp.length()>200){
        			iState=-1;
					Tools.writeStringToFile(bbwjlj+"/ERROR.txt", "房地产类项目信息中第"+(num+1)+"行的建筑工程规划许可证号字符长度大于40\r\n");
				}
				if(temp.trim().length()>5){
					String[] tt=temp.trim().split("/");
					for(String ttt:tt){
						if(ttt==null || ttt.trim().length()<1){
		        			iState=0;
							Tools.writeStringToFile(bbwjlj+"/ERROR.txt", "房地产类项目信息中第"+(num+1)+"行的建筑工程规划许可证号多个证件号之间应使用英文“/”字符分割，并且字符长度大于0\r\n");
						}
						else if(ttt.trim().length()<1){
		        			iState=0;
							Tools.writeStringToFile(bbwjlj+"/ERROR.txt", "房地产类项目信息中第"+(num+1)+"行的建筑工程规划许可证号多个证件号之间应使用英文“/”字符分割，并且字符长度不大于40\r\n");
						}
					}
				}
				break;
			case 19://是否办理了建筑工程施工许可证
				if(temp.trim().length()<1){
        			iState=-1;
					Tools.writeStringToFile(bbwjlj+"/ERROR.txt", "房地产类项目信息中第"+(num+1)+"行的是否办理了建筑工程施工许可证必须填写\r\n");
				}
				if(!ShiFou.containsKey(temp)){
        			iState=-1;
					Tools.writeStringToFile(bbwjlj+"/ERROR.txt", "房地产类项目信息中第"+(num+1)+"行的是否办理了建筑工程施工许可证错误\r\n");
				}
				else{
					temp=ShiFou.get(temp);
				}
				break;
			case 20://建筑工程施工许可证号
				if("是".equalsIgnoreCase(temp_map.get(19)) && temp.trim().length()<1){
        			iState=-1;
					Tools.writeStringToFile(bbwjlj+"/ERROR.txt", "房地产类项目信息中第"+(num+1)+"行当办理了建筑工程施工许可证时必须填写建筑工程施工许可证号\r\n");
				}
				if(temp.length()>200){
        			iState=-1;
					Tools.writeStringToFile(bbwjlj+"/ERROR.txt", "房地产类项目信息中第"+(num+1)+"行的建筑工程施工许可证号字符长度大于200\r\n");
				}
				if(temp.trim().length()>5){
					String[] tt=temp.trim().split("/");
					for(String ttt:tt){
						if(ttt==null || ttt.trim().length()<1){
		        			iState=0;
							Tools.writeStringToFile(bbwjlj+"/ERROR.txt", "房地产类项目信息中第"+(num+1)+"行的建筑工程施工许可证号多个证件号之间应使用英文“/”字符分割，并且字符长度大于0\r\n");
						}
						else if(ttt.trim().length()<1){
		        			iState=0;
							Tools.writeStringToFile(bbwjlj+"/ERROR.txt", "房地产类项目信息中第"+(num+1)+"行的建筑工程施工许可证号多个证件号之间应使用英文“/”字符分割，并且字符长度不大于40\r\n");
						}
					}
				}
				break;
			case 21://项目预计的贷款总额
				if(temp.trim().length()>0){
					try{
						Double.parseDouble(temp);
					}
					catch(Exception _err){
	        			iState=-1;
						Tools.writeStringToFile(bbwjlj+"/ERROR.txt", "房地产类项目信息中第"+(num+1)+"行的项目预计贷款总额必须为数值类型\r\n");
					}
				}
				break;
			case 22://项目是否已进入施工阶段
				if(temp.trim().length()<1){
        			iState=-1;
					Tools.writeStringToFile(bbwjlj+"/ERROR.txt", "房地产类项目信息中第"+(num+1)+"行的项目是否已进入施工阶段必须填写\r\n");
				}
				if(!ShiFou.containsKey(temp)){
        			iState=-1;
					Tools.writeStringToFile(bbwjlj+"/ERROR.txt", "房地产类项目信息中第"+(num+1)+"行的项目是否已进入施工阶段错误\r\n");
				}
				else{
					temp=ShiFou.get(temp);
				}
				break;
			case 23://项目完成进度
				if("是".equalsIgnoreCase(temp_map.get(22)) && temp.trim().length()<1){
        			iState=-1;
					Tools.writeStringToFile(bbwjlj+"/ERROR.txt", "房地产类项目信息中第"+(num+1)+"行当项目进入施工阶段时必须填写项目完成进度\r\n");
				}
				if(temp.trim().length()>0){
					try{
						Double.parseDouble(temp);
					}
					catch(Exception _err){
	        			iState=-1;
						Tools.writeStringToFile(bbwjlj+"/ERROR.txt", "房地产类项目信息中第"+(num+1)+"行的项目完成进度必须为数值类型\r\n");
					}
				}
				break;
			case 24://项目是否已开始销售
				if(temp.trim().length()<1){
        			iState=-1;
					Tools.writeStringToFile(bbwjlj+"/ERROR.txt", "房地产类项目信息中第"+(num+1)+"行的项目是否已开始销售必须填写\r\n");
				}
				if(!ShiFou.containsKey(temp)){
        			iState=-1;
					Tools.writeStringToFile(bbwjlj+"/ERROR.txt", "房地产类项目信息中第"+(num+1)+"行的项目是否已开始销售错误\r\n");
				}
				else{
					temp=ShiFou.get(temp);
				}
				break;
			case 25://项目销售进度
				if("是".equalsIgnoreCase(temp_map.get(22)) && temp.trim().length()<1){
        			iState=-1;
					Tools.writeStringToFile(bbwjlj+"/ERROR.txt", "房地产类项目信息中第"+(num+1)+"行当项目开始销售时必须填写项目销售进度\r\n");
				}
				if(temp.trim().length()>0){
					try{
						Double.parseDouble(temp);
					}
					catch(Exception _err){
	        			iState=-1;
						Tools.writeStringToFile(bbwjlj+"/ERROR.txt", "房地产类项目信息中第"+(num+1)+"行的项目销售进度必须为数值类型\r\n");
					}
				}
				break;
			case 26://项目销售进度
				if("是".equalsIgnoreCase(temp_map.get(22)) && temp.trim().length()<1){
        			iState=-1;
					Tools.writeStringToFile(bbwjlj+"/ERROR.txt", "房地产类项目信息中第"+(num+1)+"行当项目开始销售时必须填写项目销售回款总额\r\n");
				}
				if(temp.trim().length()>0){
					try{
						Double.parseDouble(temp);
					}
					catch(Exception _err){
	        			iState=-1;
						Tools.writeStringToFile(bbwjlj+"/ERROR.txt", "房地产类项目信息中第"+(num+1)+"行的项目销售回款总额必须为数值类型\r\n");
					}
				}
				break;
			case 27://销售回款资金监控安排
				if(temp.trim().length()<1){
        			iState=-1;
					Tools.writeStringToFile(bbwjlj+"/ERROR.txt", "房地产类项目信息中第"+(num+1)+"行的销售回款资金监控安排必须填写\r\n");
				}
				if(temp.trim().length()>0){
					if(XMXSZJJKAP.containsKey(temp)){
						temp=XMXSZJJKAP.get(temp);
					}
					else{
	        			iState=-1;
						Tools.writeStringToFile(bbwjlj+"/ERROR.txt", "房地产类项目信息中第"+(num+1)+"行的销售回款资金监控安排错误\r\n");
					}
				}
				break;
			case 28://信托公司对项目的评级
				if(temp.length()>50){
        			iState=-1;
					Tools.writeStringToFile(bbwjlj+"/ERROR.txt", "房地产类项目信息中第"+(num+1)+"行的信托公司对项目的评级字符长度大于50\r\n");
				}
				break;
			}	
			sb.append(temp+"|");
		}
		sb.deleteCharAt(sb.length()-1);
		sb.append("\r\n");
    	Tools.writeStringToFile(bbwjlj+"/FDCXMXX.txt", sb.toString());
	}
	


	/** 创建非房地产类项目信息上报文件
	 * @param temp_map 非房地产类项目信息MAP数据
	 * @param bbwjlj 上报文件路径
	 */
	private void createFFDCXMXX(Map<Integer, String> temp_map, String bbwjlj,int num) {
    	StringBuffer sb = new StringBuffer(JRXKZHM+"|");
    	String strTRZXS="";
		SimpleDateFormat format = new SimpleDateFormat("yyyyMMdd");
    	Map<Integer, String> xiangmuxinxi = new HashMap<Integer, String>();
		for(int j=0;j<temp_map.size();j++){
			String temp = temp_map.get(j);
			switch (j){
			case 0:
				if(!XTXMXX.containsKey(temp)){
        			iState=-1;
					Tools.writeStringToFile(bbwjlj+"/ERROR.txt", "非房地产类项目信息中第"+(num+1)+"行的信托项目编码和信托项目信息中的信托项目编码不一致\r\n");
					return ;
				}
				else{
					xiangmuxinxi=XTXMXX.get(temp);
				}
				break;
			case 1:
				if(temp.trim().length()<1){
        			iState=-1;
					Tools.writeStringToFile(bbwjlj+"/ERROR.txt", "非房地产类项目信息中第"+(num+1)+"行的投融资合同编号必须填写\r\n");
				}
				if(temp.length()>40){
        			iState=-1;
					Tools.writeStringToFile(bbwjlj+"/ERROR.txt", "非房地产类项目信息中第"+(num+1)+"行的投融资合同编号字符长度大于40\r\n");
				}
				if(!TRZHTXX.containsKey(temp)){
        			iState=-1;
					Tools.writeStringToFile(bbwjlj+"/ERROR.txt", "非房地产类项目信息中第"+(num+1)+"行的投融资合同编号和投融资合同信息中的投融资合同编号不一致\r\n");
					return ;
				}
				break;
			case 2://项目具体名称
				if(temp.trim().length()<1){
        			iState=-1;
					Tools.writeStringToFile(bbwjlj+"/ERROR.txt", "非房地产类项目信息中第"+(num+1)+"行的项目具体名称必须填写\r\n");
				}
				if(temp.length()>80){
        			iState=-1;
					Tools.writeStringToFile(bbwjlj+"/ERROR.txt", "非房地产类项目信息中第"+(num+1)+"行的项目具体名称字符长度大于80\r\n");
				}
				break;
			case 3://项目类型
				if(temp.trim().length()<1){
        			iState=-1;
					Tools.writeStringToFile(bbwjlj+"/ERROR.txt", "非房地产类项目信息中第"+(num+1)+"行的项目类型必须填写\r\n");
				}
				if(!XMLX.containsKey(temp)){
        			iState=-1;
					Tools.writeStringToFile(bbwjlj+"/ERROR.txt", "非房地产类项目信息中第"+(num+1)+"行的项目类型错误\r\n");
				}
				else{
					temp=XMLX.get(temp);
				}
				break;
			case 4://批准项目文件名称
				if(xiangmuxinxi.get(3).compareToIgnoreCase("20120630")>=0 && temp.trim().length()<1){
        			iState=-1;
					Tools.writeStringToFile(bbwjlj+"/ERROR.txt", "非房地产类项目信息中第"+(num+1)+"行的2012年6月30日以后成立的项目必须填写批准项目文件名称\r\n");
				}
				if(temp.length()>80){
        			iState=-1;
					Tools.writeStringToFile(bbwjlj+"/ERROR.txt", "非房地产类项目信息中第"+(num+1)+"行的批准项目文件名称字符长度大于80\r\n");
				}
				break;
			case 5://批准项目文件编号
				if(xiangmuxinxi.get(3).compareToIgnoreCase("20120630")>=0 && temp.trim().length()<1){
        			iState=-1;
					Tools.writeStringToFile(bbwjlj+"/ERROR.txt", "非房地产类项目信息中第"+(num+1)+"行的2012年6月30日以后成立的项目必须填写批准项目文件编号\r\n");
				}
				if(temp.length()>40){
        			iState=-1;
					Tools.writeStringToFile(bbwjlj+"/ERROR.txt", "非房地产类项目信息中第"+(num+1)+"行的批准项目文件编号字符长度大于40\r\n");
				}
				break;
			case 6://项目总投资金额
				if(xiangmuxinxi.get(3).compareToIgnoreCase("20120630")>=0 && temp.trim().length()<1){
        			iState=-1;
					Tools.writeStringToFile(bbwjlj+"/ERROR.txt", "非房地产类项目信息中第"+(num+1)+"行的2012年6月30日以后成立的项目必须填写项目总投资金额\r\n");
				}
				if(temp.length()>0){
					try{
						Double.parseDouble(temp);
					}
					catch(Exception _err){
	        			iState=-1;
						Tools.writeStringToFile(bbwjlj+"/ERROR.txt", "非房地产类项目信息中第"+(num+1)+"行的项目总投资金额必须为数值类型\r\n");
					}
				}
				break;
			case 7://项目资本金比例
				if(temp.trim().length()<1){
        			iState=-1;
					Tools.writeStringToFile(bbwjlj+"/ERROR.txt", "非房地产类项目信息中第"+(num+1)+"行的项目资本金比例必须填写\r\n");
				}
				else{
					try{
						Double.parseDouble(temp);
					}
					catch(Exception _err){
	        			iState=-1;
						Tools.writeStringToFile(bbwjlj+"/ERROR.txt", "非房地产类项目信息中第"+(num+1)+"行的项目资本金比例必须为数值类型\r\n");
					}
				}
				break;
			case 8://还款来源
				if(temp.length()>1000){
        			iState=-1;
					Tools.writeStringToFile(bbwjlj+"/ERROR.txt", "非房地产类项目信息中第"+(num+1)+"行的还款来源字符长度大于1000\r\n");
				}
				break;
			}	
			sb.append(temp+"|");
		}
		sb.deleteCharAt(sb.length()-1);
		sb.append("\r\n");
    	Tools.writeStringToFile(bbwjlj+"/FFDCXMXX.txt", sb.toString());
	}

	/** 创建期间管理信息（证券类）上报文件
	 * @param temp_map 期间管理信息（证券类）MAP数据
	 * @param bbwjlj 上报文件路径
	 */
	private void createQJGLXX_ZQL(Map<Integer, String> temp_map, String bbwjlj,int num) {
    	StringBuffer sb = new StringBuffer(JRXKZHM+"|");
    	SimpleDateFormat format = new SimpleDateFormat("yyyyMMdd");
    	Map<Integer, String> xiangmuxinxi = new HashMap<Integer, String>();
		for(int j=0;j<temp_map.size();j++){
			String temp = temp_map.get(j);
			switch (j){
			case 0:
				if(!XTXMXX.containsKey(temp)){
        			iState=-1;
					Tools.writeStringToFile(bbwjlj+"/ERROR.txt", "期间管理信息（证券类）中第"+(num+1)+"行的信托项目编码和信托项目信息中的信托项目编码不一致\r\n");
					return ;
				}
				else{
					xiangmuxinxi=XTXMXX.get(temp);
				}
				break;
			case 1://信托银行专户账号
				if(temp.trim().length()<1){
        			iState=-1;
					Tools.writeStringToFile(bbwjlj+"/ERROR.txt", "期间管理信息（证券类）中第"+(num+1)+"行的信托银行专户账号必须填写\r\n");
				}
				if(temp.length()>40){
        			iState=-1;
					Tools.writeStringToFile(bbwjlj+"/ERROR.txt", "期间管理信息（证券类）中第"+(num+1)+"行的信托银行专户账号字符长度大于40\r\n");
				}
				break;
			case 2://信托证券专户账号
				if(temp.trim().length()<1){
        			iState=-1;
					Tools.writeStringToFile(bbwjlj+"/ERROR.txt", "期间管理信息（证券类）中第"+(num+1)+"行的信托证券专户账号必须填写\r\n");
				}
				if(temp.length()>40){
        			iState=-1;
					Tools.writeStringToFile(bbwjlj+"/ERROR.txt", "期间管理信息（证券类）中第"+(num+1)+"行的信托证券专户账号字符长度大于40\r\n");
				}
				break;
			case 3://信托经理名称
				if(temp.trim().length()<1){
        			iState=-1;
					Tools.writeStringToFile(bbwjlj+"/ERROR.txt", "期间管理信息（证券类）中第"+(num+1)+"行的信托经理名称必须填写\r\n");
				}
				if(temp.length()>20){
        			iState=-1;
					Tools.writeStringToFile(bbwjlj+"/ERROR.txt", "期间管理信息（证券类）中第"+(num+1)+"行的信托经理名称字符长度大于20\r\n");
				}
				break;
			case 4://信托经理证件类型
				if(temp.trim().length()<1){
        			iState=-1;
					Tools.writeStringToFile(bbwjlj+"/ERROR.txt", "期间管理信息（证券类）中第"+(num+1)+"行的信托经理证件类型必须填写\r\n");
				}
				if(!ZJLX.containsKey(temp)){
        			iState=-1;
					Tools.writeStringToFile(bbwjlj+"/ERROR.txt", "期间管理信息（证券类）中第"+(num+1)+"行的项目类型错误\r\n");
				}
				else{
					temp=ZJLX.get(temp);
				}
				break;
			case 5://信托经理证件号码
				if(temp.trim().length()<1){
        			iState=-1;
					Tools.writeStringToFile(bbwjlj+"/ERROR.txt", "期间管理信息（证券类）中第"+(num+1)+"行的信托经理证件号码必须填写\r\n");
				}
				if(temp.length()>40){
        			iState=-1;
					Tools.writeStringToFile(bbwjlj+"/ERROR.txt", "期间管理信息（证券类）中第"+(num+1)+"行的信托经理证件号码字符长度大于40\r\n");
				}
				break;
			case 6://信托经理资格认证号码
				if(temp.length()>40){
        			iState=-1;
					Tools.writeStringToFile(bbwjlj+"/ERROR.txt", "期间管理信息（证券类）中第"+(num+1)+"行的信托经理资格认证号码字符长度大于40\r\n");
				}
				break;
			case 7://信托财产单位净值计算频度
				if(temp.trim().length()<1){
        			iState=-1;
					Tools.writeStringToFile(bbwjlj+"/ERROR.txt", "期间管理信息（证券类）中第"+(num+1)+"行的信托财产单位净值计算频度必须填写\r\n");
				}
				if(!JZPD.containsKey(temp)){
        			iState=-1;
					Tools.writeStringToFile(bbwjlj+"/ERROR.txt", "期间管理信息（证券类）中第"+(num+1)+"行的信托财产单位净值计算频度错误\r\n");
				}
				else{
					temp=JZPD.get(temp);
				}
				break;
			case 8://信托财产单位净值披露频度
				if(temp.trim().length()<1){
        			iState=-1;
					Tools.writeStringToFile(bbwjlj+"/ERROR.txt", "期间管理信息（证券类）中第"+(num+1)+"行的信托财产单位净值披露频度必须填写\r\n");
				}
				if(!JZPD.containsKey(temp)){
        			iState=-1;
					Tools.writeStringToFile(bbwjlj+"/ERROR.txt", "期间管理信息（证券类）中第"+(num+1)+"行的信托财产单位净值披露频度错误\r\n");
				}
				else{
					temp=JZPD.get(temp);
				}
				break;
			case 9://最近时点信托财产单位净值
				if(temp.trim().length()<1){
        			iState=-1;
					Tools.writeStringToFile(bbwjlj+"/ERROR.txt", "期间管理信息（证券类）中第"+(num+1)+"行的最近时点信托财产单位净值必须填写\r\n");
				}
				else{
					try{
						Double.parseDouble(temp);
					}
					catch(Exception _err){
	        			iState=-1;
						Tools.writeStringToFile(bbwjlj+"/ERROR.txt", "期间管理信息（证券类）中第"+(num+1)+"行的最近时点信托财产单位净值必须为数值类型\r\n");
					}
				}
				break;
			case 10://最近时点信托项目持有股票市值金额
				if(temp.trim().length()<1){
        			iState=-1;
					Tools.writeStringToFile(bbwjlj+"/ERROR.txt", "期间管理信息（证券类）中第"+(num+1)+"行的最近时点信托项目持有股票市值金额必须填写\r\n");
				}
				else{
					try{
						Double.parseDouble(temp);
					}
					catch(Exception _err){
	        			iState=-1;
						Tools.writeStringToFile(bbwjlj+"/ERROR.txt", "期间管理信息（证券类）中第"+(num+1)+"行的最近时点信托项目持有股票市值金额必须为数值类型\r\n");
					}
				}
				break;
			case 11://最近时点信托项目持有债券金额
				if(temp.trim().length()<1){
        			iState=-1;
					Tools.writeStringToFile(bbwjlj+"/ERROR.txt", "期间管理信息（证券类）中第"+(num+1)+"行的最近时点信托项目持有债券金额必须填写\r\n");
				}
				else{
					try{
						Double.parseDouble(temp);
					}
					catch(Exception _err){
	        			iState=-1;
						Tools.writeStringToFile(bbwjlj+"/ERROR.txt", "期间管理信息（证券类）中第"+(num+1)+"行的最近时点信托项目持有债券金额必须为数值类型\r\n");
					}
				}
				break;
			case 12://最近时点信托项目持有基金金额
				if(temp.trim().length()<1){
        			iState=-1;
					Tools.writeStringToFile(bbwjlj+"/ERROR.txt", "期间管理信息（证券类）中第"+(num+1)+"行的最近时点信托项目持有基金金额必须填写\r\n");
				}
				else{
					try{
						Double.parseDouble(temp);
					}
					catch(Exception _err){
	        			iState=-1;
						Tools.writeStringToFile(bbwjlj+"/ERROR.txt", "期间管理信息（证券类）中第"+(num+1)+"行的最近时点信托项目持有基金金额必须为数值类型\r\n");
					}
				}
				break;
			case 13://最近时点信托项目持有其他有价证券金额
				if(temp.trim().length()<1){
        			iState=-1;
					Tools.writeStringToFile(bbwjlj+"/ERROR.txt", "期间管理信息（证券类）中第"+(num+1)+"行的最近时点信托项目持有其他有价证券金额必须填写\r\n");
				}
				else{
					try{
						Double.parseDouble(temp);
					}
					catch(Exception _err){
	        			iState=-1;
						Tools.writeStringToFile(bbwjlj+"/ERROR.txt", "期间管理信息（证券类）中第"+(num+1)+"行的最近时点信托项目持有其他有价证券金额必须为数值类型\r\n");
					}
				}
				break;
			case 14://最近时点信托项目持有空头保证金占用
				if(temp.trim().length()<1){
        			iState=-1;
					Tools.writeStringToFile(bbwjlj+"/ERROR.txt", "期间管理信息（证券类）中第"+(num+1)+"行的最近时点信托项目持有空头保证金占用必须填写\r\n");
				}
				else{
					try{
						Double.parseDouble(temp);
					}
					catch(Exception _err){
	        			iState=-1;
						Tools.writeStringToFile(bbwjlj+"/ERROR.txt", "期间管理信息（证券类）中第"+(num+1)+"行的最近时点信托项目持有空头保证金占用必须为数值类型\r\n");
					}
				}
				break;
			case 15://最近时点信托项目持有多头保证金占用
				if(temp.trim().length()<1){
        			iState=-1;
					Tools.writeStringToFile(bbwjlj+"/ERROR.txt", "期间管理信息（证券类）中第"+(num+1)+"行的最近时点信托项目持有多头保证金占用必须填写\r\n");
				}
				else{
					try{
						Double.parseDouble(temp);
					}
					catch(Exception _err){
	        			iState=-1;
						Tools.writeStringToFile(bbwjlj+"/ERROR.txt", "期间管理信息（证券类）中第"+(num+1)+"行的最近时点信托项目持有多头保证金占用必须为数值类型\r\n");
					}
				}
				break;
			case 16://最近时点信托项目期货资金账号结算准备金余额
				if(temp.trim().length()<1){
        			iState=-1;
					Tools.writeStringToFile(bbwjlj+"/ERROR.txt", "期间管理信息（证券类）中第"+(num+1)+"行的最近时点信托项目期货资金账号结算准备金余额必须填写\r\n");
				}
				else{
					try{
						Double.parseDouble(temp);
					}
					catch(Exception _err){
	        			iState=-1;
						Tools.writeStringToFile(bbwjlj+"/ERROR.txt", "期间管理信息（证券类）中第"+(num+1)+"行的最近时点信托项目期货资金账号结算准备金余额必须为数值类型\r\n");
					}
				}
				break;
			case 17://最近时点信托项目持仓比例
				if(temp.trim().length()<1){
        			iState=-1;
					Tools.writeStringToFile(bbwjlj+"/ERROR.txt", "期间管理信息（证券类）中第"+(num+1)+"行的最近时点信托项目持仓比例必须填写\r\n");
				}
				else{
					try{
						Double.parseDouble(temp);
					}
					catch(Exception _err){
	        			iState=-1;
						Tools.writeStringToFile(bbwjlj+"/ERROR.txt", "期间管理信息（证券类）中第"+(num+1)+"行的最近时点信托项目持仓比例必须为数值类型\r\n");
					}
				}
				break;
			case 18://项目成立以来净值增长率
				if(temp.trim().length()<1){
        			iState=-1;
					Tools.writeStringToFile(bbwjlj+"/ERROR.txt", "期间管理信息（证券类）中第"+(num+1)+"行的项目成立以来净值增长率必须填写\r\n");
				}
				else{
					try{
						Double.parseDouble(temp);
					}
					catch(Exception _err){
	        			iState=-1;
						Tools.writeStringToFile(bbwjlj+"/ERROR.txt", "期间管理信息（证券类）中第"+(num+1)+"行的项目成立以来净值增长率必须为数值类型\r\n");
					}
				}
				break;
			case 19://本年度信托累计净值增长率
				if(temp.trim().length()<1){
        			iState=-1;
					Tools.writeStringToFile(bbwjlj+"/ERROR.txt", "期间管理信息（证券类）中第"+(num+1)+"行的本年度信托累计净值增长率必须填写\r\n");
				}
				else{
					try{
						Double.parseDouble(temp);
					}
					catch(Exception _err){
	        			iState=-1;
						Tools.writeStringToFile(bbwjlj+"/ERROR.txt", "期间管理信息（证券类）中第"+(num+1)+"行的本年度信托累计净值增长率必须为数值类型\r\n");
					}
				}
				break;
			case 20://最近追加资金日期
				if(xiangmuxinxi.get(3).compareToIgnoreCase("20120630")>=0 && temp.trim().length()<1){
        			iState=-1;
					Tools.writeStringToFile(bbwjlj+"/ERROR.txt", "期间管理信息（证券类）中第"+(num+1)+"行的2012年6月30日以后成立的项目必须填写项目总投资金额\r\n");
				}
				if(temp.trim().length()>0){
					try {
						Date d=format.parse(temp);
						if(temp.compareToIgnoreCase("19800101")<1 || temp.compareToIgnoreCase(format.format(new Date()))>=0){
		        			iState=-1;
							Tools.writeStringToFile(bbwjlj+"/ERROR.txt", "期间管理信息（证券类）中第"+(num+1)+"行的最近追加资金日期错误\r\n");
						}
					} catch (ParseException e) {
						iState=-1;
						Tools.writeStringToFile(bbwjlj+"/ERROR.txt", "期间管理信息（证券类）中第"+(num+1)+"行的最近追加资金日期格式错误\r\n");
					}
				}
				break;
			case 21://最近追加资金金额
				if(xiangmuxinxi.get(3).compareToIgnoreCase("20120630")>=0 && temp.trim().length()<1){
        			iState=-1;
					Tools.writeStringToFile(bbwjlj+"/ERROR.txt", "期间管理信息（证券类）中第"+(num+1)+"行的2012年6月30日以后成立的项目必须填写最近追加资金金额\r\n");
				}
				if(temp.length()>0){
					try{
						Double.parseDouble(temp);
					}
					catch(Exception _err){
	        			iState=-1;
						Tools.writeStringToFile(bbwjlj+"/ERROR.txt", "期间管理信息（证券类）中第"+(num+1)+"行的最近追加资金金额必须为数值类型\r\n");
					}
				}
				break;
			case 22://累计追加资金金额
				if(xiangmuxinxi.get(3).compareToIgnoreCase("20120630")>=0 && temp.trim().length()<1){
        			iState=-1;
					Tools.writeStringToFile(bbwjlj+"/ERROR.txt", "期间管理信息（证券类）中第"+(num+1)+"行的2012年6月30日以后成立的项目必须填写累计追加资金金额\r\n");
				}
				if(temp.length()>0){
					try{
						Double.parseDouble(temp);
					}
					catch(Exception _err){
	        			iState=-1;
						Tools.writeStringToFile(bbwjlj+"/ERROR.txt", "期间管理信息（证券类）中第"+(num+1)+"行的累计追加资金金额必须为数值类型\r\n");
					}
				}
				break;
			case 23://最近取回资金日期
				if(xiangmuxinxi.get(3).compareToIgnoreCase("20120630")>=0 && temp.trim().length()<1){
        			iState=-1;
					Tools.writeStringToFile(bbwjlj+"/ERROR.txt", "期间管理信息（证券类）中第"+(num+1)+"行的2012年6月30日以后成立的项目必须填写最近取回资金日期\r\n");
				}
				if(temp.trim().length()>0){
					try {
						Date d=format.parse(temp);
						if(temp.compareToIgnoreCase("19800101")<1 || temp.compareToIgnoreCase(format.format(new Date()))>=0){
		        			iState=-1;
							Tools.writeStringToFile(bbwjlj+"/ERROR.txt", "期间管理信息（证券类）中第"+(num+1)+"行的最近取回资金日期错误\r\n");
						}
					} catch (ParseException e) {
						iState=-1;
						Tools.writeStringToFile(bbwjlj+"/ERROR.txt", "期间管理信息（证券类）中第"+(num+1)+"行的最近取回资金日期格式错误\r\n");
					}
				}
				break;
			case 24://最近取回资金金额
				if(xiangmuxinxi.get(3).compareToIgnoreCase("20120630")>=0 && temp.trim().length()<1){
        			iState=-1;
					Tools.writeStringToFile(bbwjlj+"/ERROR.txt", "期间管理信息（证券类）中第"+(num+1)+"行的2012年6月30日以后成立的项目必须填写最近取回资金金额\r\n");
				}
				if(temp.length()>0){
					try{
						Double.parseDouble(temp);
					}
					catch(Exception _err){
	        			iState=-1;
						Tools.writeStringToFile(bbwjlj+"/ERROR.txt", "期间管理信息（证券类）中第"+(num+1)+"行的最近取回资金金额必须为数值类型\r\n");
					}
				}
				break;
			case 25://累计取回资金金额
				if(xiangmuxinxi.get(3).compareToIgnoreCase("20120630")>=0 && temp.trim().length()<1){
        			iState=-1;
					Tools.writeStringToFile(bbwjlj+"/ERROR.txt", "期间管理信息（证券类）中第"+(num+1)+"行的2012年6月30日以后成立的项目必须填写累计取回资金金额\r\n");
				}
				if(temp.length()>0){
					try{
						Double.parseDouble(temp);
					}
					catch(Exception _err){
	        			iState=-1;
						Tools.writeStringToFile(bbwjlj+"/ERROR.txt", "期间管理信息（证券类）中第"+(num+1)+"行的累计取回资金金额必须为数值类型\r\n");
					}
				}
				break;
			case 26://资产管理报告频度
				if(xiangmuxinxi.get(3).compareToIgnoreCase("20120630")>=0 && temp.trim().length()<1){
        			iState=-1;
					Tools.writeStringToFile(bbwjlj+"/ERROR.txt", "期间管理信息（证券类）中第"+(num+1)+"行的2012年6月30日以后成立的项目必须填写资产管理报告频度\r\n");
				}
				if(temp.length()>0){
					if(!ZCGLBGPD.containsKey(temp)){
	        			iState=-1;
						Tools.writeStringToFile(bbwjlj+"/ERROR.txt", "期间管理信息（证券类）中第"+(num+1)+"行的资产管理报告频度错误\r\n");
					}
					else{
						temp=ZCGLBGPD.get(temp);
					}
				}
				break;
			case 27://最新资产管理报告日期
				if(xiangmuxinxi.get(3).compareToIgnoreCase("20120630")>=0 && temp.trim().length()<1){
        			iState=-1;
					Tools.writeStringToFile(bbwjlj+"/ERROR.txt", "期间管理信息（证券类）中第"+(num+1)+"行的2012年6月30日以后成立的项目必须填写最新资产管理报告日期\r\n");
				}
				if(temp.trim().length()>0){
					try {
						Date d=format.parse(temp);
						if(temp.compareToIgnoreCase("19800101")<1 || temp.compareToIgnoreCase(format.format(new Date()))>=0){
		        			iState=-1;
							Tools.writeStringToFile(bbwjlj+"/ERROR.txt", "期间管理信息（证券类）中第"+(num+1)+"行的最新资产管理报告日期错误\r\n");
						}
					} catch (ParseException e) {
						iState=-1;
						Tools.writeStringToFile(bbwjlj+"/ERROR.txt", "期间管理信息（证券类）中第"+(num+1)+"行的最新资产管理报告日期格式错误\r\n");
					}
				}
				break;
			}
			sb.append(temp+"|");
		}
		sb.deleteCharAt(sb.length()-1);
		sb.append("\r\n");
    	Tools.writeStringToFile(bbwjlj+"/QJGLXX_ZQL.txt", sb.toString());
	}
	
	/** 创建信托项目会计信息上报文件
	 * @param temp_map 信托项目会计信息MAP数据
	 * @param bbwjlj 上报文件路径
	 */
	private void createXTXMKJXX(Map<Integer, String> temp_map, String bbwjlj,int num) {
    	StringBuffer sb = new StringBuffer(JRXKZHM+"|");
    	SimpleDateFormat format = new SimpleDateFormat("yyyyMMdd");
    	Map<Integer, String> xiangmuxinxi = new HashMap<Integer, String>();
		for(int j=0;j<temp_map.size();j++){
			String temp = temp_map.get(j);
			switch (j){
			case 0:
				if(!XTXMXX.containsKey(temp)){
        			iState=-1;
					Tools.writeStringToFile(bbwjlj+"/ERROR.txt", "信托项目会计信息中第"+(num+1)+"行的信托项目编码和信托项目信息中的信托项目编码不一致\r\n");
					return ;
				}
				else{
					xiangmuxinxi=XTXMXX.get(temp);
				}
				break;
			case 1://会计日期
				if(temp.trim().length()<1){
        			iState=-1;
					Tools.writeStringToFile(bbwjlj+"/ERROR.txt", "信托项目会计信息中第"+(num+1)+"行的会计日期必须填写\r\n");
				}
				else{
					try {
						Date d=format.parse(temp);
						if(temp.compareToIgnoreCase("19800101")<1 || d.after(new Date())){
		        			iState=-1;
							Tools.writeStringToFile(bbwjlj+"/ERROR.txt", "信托项目会计信息中第"+(num+1)+"行的会计日期错误\r\n");
						}
					} catch (ParseException e) {
						iState=-1;
						Tools.writeStringToFile(bbwjlj+"/ERROR.txt", "信托项目会计信息中第"+(num+1)+"行的会计日期格式错误\r\n");
					}
				}
				break;
			case 2://科目名称
				if(temp.trim().length()<1){
        			iState=-1;
					Tools.writeStringToFile(bbwjlj+"/ERROR.txt", "信托项目会计信息中第"+(num+1)+"行的科目名称必须填写\r\n");
				}
				if(!KJKM.containsValue(temp)){
        			iState=-1;
					Tools.writeStringToFile(bbwjlj+"/ERROR.txt", "信托项目会计信息中第"+(num+1)+"行的科目名称错误\r\n");
				}
				break;
			case 3://科目编码
				if(temp.trim().length()<1){
        			iState=-1;
					Tools.writeStringToFile(bbwjlj+"/ERROR.txt", "信托项目会计信息中第"+(num+1)+"行的科目编码必须填写\r\n");
				}
				if(!KJKM.containsKey(temp)){
        			iState=-1;
					Tools.writeStringToFile(bbwjlj+"/ERROR.txt", "信托项目会计信息中第"+(num+1)+"行的科目编码错误\r\n");
				}
				break;
			case 4://借贷方向
				if(temp.trim().length()<1){
        			iState=-1;
					Tools.writeStringToFile(bbwjlj+"/ERROR.txt", "信托项目会计信息中第"+(num+1)+"行的借贷方向必须填写\r\n");
				}
				if(!JD_FX.containsKey(temp)){
        			iState=-1;
					Tools.writeStringToFile(bbwjlj+"/ERROR.txt", "信托项目会计信息中第"+(num+1)+"行的借贷方向错误\r\n");
				}
				else{
					temp=JD_FX.get(temp);
				}
				break;
			case 5://借方发生额
				if(temp.trim().length()<1){
        			iState=-1;
					Tools.writeStringToFile(bbwjlj+"/ERROR.txt", "信托项目会计信息中第"+(num+1)+"行的借方发生额必须填写\r\n");
				}
				else{
					try{
						Double.parseDouble(temp);
					}
					catch(Exception _err){
	        			iState=-1;
						Tools.writeStringToFile(bbwjlj+"/ERROR.txt", "信托项目会计信息中第"+(num+1)+"行的借方发生额必须为数值类型\r\n");
					}
				}
				break;
			case 6://贷方发生额
				if(temp.trim().length()<1){
        			iState=-1;
					Tools.writeStringToFile(bbwjlj+"/ERROR.txt", "信托项目会计信息中第"+(num+1)+"行的贷方发生额必须填写\r\n");
				}
				else{
					try{
						Double.parseDouble(temp);
					}
					catch(Exception _err){
	        			iState=-1;
						Tools.writeStringToFile(bbwjlj+"/ERROR.txt", "信托项目会计信息中第"+(num+1)+"行的贷方发生额必须为数值类型\r\n");
					}
				}
				break;
			case 7://期末余额
				if(temp.trim().length()<1){
        			iState=-1;
					Tools.writeStringToFile(bbwjlj+"/ERROR.txt", "信托项目会计信息中第"+(num+1)+"行的期末余额必须填写\r\n");
				}
				else{
					try{
						Double.parseDouble(temp);
					}
					catch(Exception _err){
	        			iState=-1;
						Tools.writeStringToFile(bbwjlj+"/ERROR.txt", "信托项目会计信息中第"+(num+1)+"行的期末余额必须为数值类型\r\n");
					}
				}
				break;
			}
			sb.append(temp+"|");
		}
		sb.deleteCharAt(sb.length()-1);
		sb.append("\r\n");
    	Tools.writeStringToFile(bbwjlj+"/XTXMKJXX.txt", sb.toString());
	}
	
	/** 创建信托项目清算信息上报文件
	 * @param temp_map 信托项目清算信息MAP数据
	 * @param bbwjlj 上报文件路径
	 */
	private void createXTXMQSXX(Map<Integer, String> temp_map, String bbwjlj,int num) {
    	StringBuffer sb = new StringBuffer(JRXKZHM+"|");
    	SimpleDateFormat format = new SimpleDateFormat("yyyyMMdd");
    	Map<Integer, String> xiangmuxinxi = new HashMap<Integer, String>();
		for(int j=0;j<temp_map.size();j++){
			String temp = temp_map.get(j);
			switch (j){
			case 0:
				if(!XTXMXX.containsKey(temp)){
        			iState=-1;
					Tools.writeStringToFile(bbwjlj+"/ERROR.txt", "信托项目清算信息中第"+(num+1)+"行的信托项目编码和信托项目信息中的信托项目编码不一致\r\n");
					return ;
				}
				else{
					xiangmuxinxi=XTXMXX.get(temp);
				}
				break;
			case 1://清算日期
				if(temp.trim().length()<1){
        			iState=-1;
					Tools.writeStringToFile(bbwjlj+"/ERROR.txt", "信托项目清算信息中第"+(num+1)+"行的清算日期必须填写\r\n");
				}
				else{
					try {
						Date d=format.parse(temp);
						if(temp.compareToIgnoreCase("19800101")<1 || d.after(new Date())){
		        			iState=-1;
							Tools.writeStringToFile(bbwjlj+"/ERROR.txt", "信托项目清算信息中第"+(num+1)+"行的清算日期错误\r\n");
						}
					} catch (ParseException e) {
						iState=-1;
						Tools.writeStringToFile(bbwjlj+"/ERROR.txt", "信托项目清算信息中第"+(num+1)+"行的清算日期格式错误\r\n");
					}
				}
				break;
			case 2://是否按约定日期清算
				if(temp.trim().length()<1){
        			iState=-1;
					Tools.writeStringToFile(bbwjlj+"/ERROR.txt", "信托项目清算信息中第"+(num+1)+"行的是否按约定日期清算必须填写\r\n");
				}
				if(!SFAYDRQQS.containsValue(temp)){
        			iState=-1;
					Tools.writeStringToFile(bbwjlj+"/ERROR.txt", "信托项目清算信息中第"+(num+1)+"行的是否按约定日期清算错误\r\n");
				}
				else{
					temp=SFAYDRQQS.get(temp);
				}
				break;
			case 3://实收信托余额
				if(temp.trim().length()<1){
        			iState=-1;
					Tools.writeStringToFile(bbwjlj+"/ERROR.txt", "信托项目清算信息中第"+(num+1)+"行的实收信托余额必须填写\r\n");
				}
				else{
					try{
						Double.parseDouble(temp);
					}
					catch(Exception _err){
	        			iState=-1;
						Tools.writeStringToFile(bbwjlj+"/ERROR.txt", "信托项目清算信息中第"+(num+1)+"行的实收信托余额必须为数值类型\r\n");
					}
				}
				break;
			case 4://信托本金累计给付额
				if(temp.trim().length()<1){
        			iState=-1;
					Tools.writeStringToFile(bbwjlj+"/ERROR.txt", "信托项目清算信息中第"+(num+1)+"行的信托本金累计给付额必须填写\r\n");
				}
				else{
					try{
						Double.parseDouble(temp);
					}
					catch(Exception _err){
	        			iState=-1;
						Tools.writeStringToFile(bbwjlj+"/ERROR.txt", "信托项目清算信息中第"+(num+1)+"行的信托本金累计给付额必须为数值类型\r\n");
					}
				}
				break;
			case 5://信托收益累计分配额
				if(temp.trim().length()<1){
        			iState=-1;
					Tools.writeStringToFile(bbwjlj+"/ERROR.txt", "信托项目清算信息中第"+(num+1)+"行的信托收益累计分配额必须填写\r\n");
				}
				else{
					try{
						Double.parseDouble(temp);
					}
					catch(Exception _err){
	        			iState=-1;
						Tools.writeStringToFile(bbwjlj+"/ERROR.txt", "信托项目清算信息中第"+(num+1)+"行的信托收益累计分配额必须为数值类型\r\n");
					}
				}
				break;
			case 6://投资顾问累计基本报酬
				if(temp.trim().length()<1){
        			iState=-1;
					Tools.writeStringToFile(bbwjlj+"/ERROR.txt", "信托项目清算信息中第"+(num+1)+"行的投资顾问累计基本报酬必须填写\r\n");
				}
				else{
					try{
						Double.parseDouble(temp);
					}
					catch(Exception _err){
	        			iState=-1;
						Tools.writeStringToFile(bbwjlj+"/ERROR.txt", "信托项目清算信息中第"+(num+1)+"行的投资顾问累计基本报酬必须为数值类型\r\n");
					}
				}
				break;
			case 7://投资顾问累计业绩报酬
				if(temp.trim().length()<1){
        			iState=-1;
					Tools.writeStringToFile(bbwjlj+"/ERROR.txt", "信托项目清算信息中第"+(num+1)+"行的投资顾问累计业绩报酬必须填写\r\n");
				}
				else{
					try{
						Double.parseDouble(temp);
					}
					catch(Exception _err){
	        			iState=-1;
						Tools.writeStringToFile(bbwjlj+"/ERROR.txt", "信托项目清算信息中第"+(num+1)+"行的投资顾问累计业绩报酬必须为数值类型\r\n");
					}
				}
				break;
			case 8://受托人累计基本报酬
				if(temp.trim().length()<1){
        			iState=-1;
					Tools.writeStringToFile(bbwjlj+"/ERROR.txt", "信托项目清算信息中第"+(num+1)+"行的受托人累计基本报酬必须填写\r\n");
				}
				else{
					try{
						Double.parseDouble(temp);
					}
					catch(Exception _err){
	        			iState=-1;
						Tools.writeStringToFile(bbwjlj+"/ERROR.txt", "信托项目清算信息中第"+(num+1)+"行的受托人累计基本报酬必须为数值类型\r\n");
					}
				}
				break;
			case 9://受托人累计业绩报酬
				if(temp.trim().length()<1){
        			iState=-1;
					Tools.writeStringToFile(bbwjlj+"/ERROR.txt", "信托项目清算信息中第"+(num+1)+"行的受托人累计业绩报酬必须填写\r\n");
				}
				else{
					try{
						Double.parseDouble(temp);
					}
					catch(Exception _err){
	        			iState=-1;
						Tools.writeStringToFile(bbwjlj+"/ERROR.txt", "信托项目清算信息中第"+(num+1)+"行的受托人累计业绩报酬必须为数值类型\r\n");
					}
				}
				break;
			case 10://信托费用率
				if(temp.trim().length()<1){
        			iState=-1;
					Tools.writeStringToFile(bbwjlj+"/ERROR.txt", "信托项目清算信息中第"+(num+1)+"行的信托费用率必须填写\r\n");
				}
				else{
					try{
						Double.parseDouble(temp);
					}
					catch(Exception _err){
	        			iState=-1;
						Tools.writeStringToFile(bbwjlj+"/ERROR.txt", "信托项目清算信息中第"+(num+1)+"行的信托费用率必须为数值类型\r\n");
					}
				}
				break;
			case 11://实际收益率
				if(temp.trim().length()<1){
        			iState=-1;
					Tools.writeStringToFile(bbwjlj+"/ERROR.txt", "信托项目清算信息中第"+(num+1)+"行的实际收益率必须填写\r\n");
				}
				else{
					try{
						Double.parseDouble(temp);
					}
					catch(Exception _err){
	        			iState=-1;
						Tools.writeStringToFile(bbwjlj+"/ERROR.txt", "信托项目清算信息中第"+(num+1)+"行的实际收益率必须为数值类型\r\n");
					}
				}
				break;
			case 12://实际信托报酬率
				if(temp.trim().length()<1){
        			iState=-1;
					Tools.writeStringToFile(bbwjlj+"/ERROR.txt", "信托项目清算信息中第"+(num+1)+"行的实际信托报酬率必须填写\r\n");
				}
				else{
					try{
						Double.parseDouble(temp);
					}
					catch(Exception _err){
	        			iState=-1;
						Tools.writeStringToFile(bbwjlj+"/ERROR.txt", "信托项目清算信息中第"+(num+1)+"行的实际信托报酬率必须为数值类型\r\n");
					}
				}
				break;
			case 13://损失金额
				if(temp.trim().length()<1){
        			iState=-1;
					Tools.writeStringToFile(bbwjlj+"/ERROR.txt", "信托项目清算信息中第"+(num+1)+"行的损失金额必须填写\r\n");
				}
				else{
					try{
						Double.parseDouble(temp);
					}
					catch(Exception _err){
	        			iState=-1;
						Tools.writeStringToFile(bbwjlj+"/ERROR.txt", "信托项目清算信息中第"+(num+1)+"行的损失金额必须为数值类型\r\n");
					}
				}
				break;
			case 14://涉诉金额
				if(temp.trim().length()<1){
        			iState=-1;
					Tools.writeStringToFile(bbwjlj+"/ERROR.txt", "信托项目清算信息中第"+(num+1)+"行的涉诉金额必须填写\r\n");
				}
				else{
					try{
						Double.parseDouble(temp);
					}
					catch(Exception _err){
	        			iState=-1;
						Tools.writeStringToFile(bbwjlj+"/ERROR.txt", "信托项目清算信息中第"+(num+1)+"行的涉诉金额必须为数值类型\r\n");
					}
				}
				break;
			case 15://赔付金额
				if(temp.trim().length()<1){
        			iState=-1;
					Tools.writeStringToFile(bbwjlj+"/ERROR.txt", "信托项目清算信息中第"+(num+1)+"行的赔付金额必须填写\r\n");
				}
				else{
					try{
						Double.parseDouble(temp);
					}
					catch(Exception _err){
	        			iState=-1;
						Tools.writeStringToFile(bbwjlj+"/ERROR.txt", "信托项目清算信息中第"+(num+1)+"行的赔付金额必须为数值类型\r\n");
					}
				}
				break;
			}
			sb.append(temp+"|");
		}
		sb.deleteCharAt(sb.length()-1);
		sb.append("\r\n");
    	Tools.writeStringToFile(bbwjlj+"/XTXMQSXX.txt", sb.toString());
	}
}
